Compare commits

...

1806 Commits

Author SHA1 Message Date
Jonathan Moore Liles cdad26211b Bump versions. 2021-01-27 17:50:26 -08:00
Jonathan Moore Liles ba30c91dad Update NTK 2021-01-27 17:46:38 -08:00
Jonathan Moore Liles 3aa5fc3c21 Mixer: Avoid some unnecessary reallocations when changing channel count. 2021-01-27 17:43:35 -08:00
Jonathan Moore Liles ce633212bb Timeline: Tweak style of loop point indicator. 2021-01-27 17:42:28 -08:00
Jonathan Moore Liles 0f8017a1ef Mixer: Cope with some plugins having insane numbers of parameters. 2021-01-27 17:41:19 -08:00
Jonathan Moore Liles e909d9594b Revert "Add 128x128 hicolor as possible icon path"
This PR was submitted in bad faith by a bad actor, didn't do anything useful, and was only accepted out of diplomacy. That was a mistake. Reverting.
This reverts commit 55de086026.
2021-01-26 17:05:13 -08:00
Jonathan Moore Liles f76de32c44 Update NTK. 2021-01-20 18:31:25 -08:00
Jonathan Moore Liles 181dd64689 Mixer: Fix export strip function. 2021-01-20 17:22:51 -08:00
Jonathan Moore Liles c83aa8ebd8 Update NTK. 2021-01-10 14:47:02 -08:00
Jonathan Moore Liles 0b23c871ee Mixer: Re-transmit the minimum amount of OSC/MIDI feedback messages when strips are rearranged. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles e7c85f1a37 Timeline: Fix region DND onto last track that was a connection DND source. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 826bea3c30 Timeline: Fix rare issue where moving the mouse over a region while recording at just the right moment could cause a spurious SET action to be written to the history. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 393684f376 Mixer: Enforce stability of module OSC path over close/open cycles.
Also, allow CV input of for multiple instances of the same plugin/parameter on the same strip.
2021-01-10 14:46:27 -08:00
Jonathan Moore Liles ab469f8a23 Mixer: Fix crash on save after group removal. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles cf03ea1562 Mixer: fix size of SM blinker. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles cda92589e9 Mixer: Fix meter falloff in chain view. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles f2aeb8a1f8 Mixer/DPM: Fix bug where peaks are sometimes not drawn. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 9f3181b9c7 Mixer: Because disconnecting/connecting JACK ports is slow, when handling a change of strip auto input setting, avoid disconnecting a port and then reconnecting it later. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 20dce6c6e6 Timeline: Don't assert if peakfile contains no blocks---it's probably just because it was just opened and hasn't been written into yet. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 793a9c1d4b Mixer: Make port autoconnection during startup and shutdown more efficient. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles f6e3ca8831 Mixer: Automatically run in "noui" mode if DISPLAY environment variable unset (i.e. X11 not available). 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 286dec338c Mixer: Fix JACK port disconnection when Auto Input/Output mode is changed. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 00c02c7d74 Mixer: Fix settings menu layout issue. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles e46fac4470 Partially revert "Mixer: Avoid some unnecessary redraws when opening project."
This reverts commit e303cf093f32472ed582ec0cad1ff758278f71f6.
2021-01-10 14:46:27 -08:00
Jonathan Moore Liles e0402a3b99 Mixer: Fix glitch in redrawing of meter scales when scrolling. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 7c071c7422 wscript: Use -mtune=native by default for performance boost benefiting those who build from source, packagers can disable. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 9e82b28f07 dsp: code style tweak. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles a0fd557baf Timeline: fix crash when removing a track. 2021-01-10 14:46:27 -08:00
Jonathan Moore Liles 82f9610ca8 Mixer: Try to better cope with parameter feedback feedback cycles. 2021-01-10 14:46:20 -08:00
Jonathan Moore Liles 1f0f01c0ad Timeline: Don't send the same OSC control sequence value twice and so avoid messing with OSC learning in non-mixer when transport is stopped. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles e290c6ea60 Mixer: Fix crash if user messes with the window while project is loading. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 9aa275e0af Mixer: Fix crash when disabling strip auto output. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles f5b215066a Mixer: Implement slow fall off for meters. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles c808c53d6c Timeline: Acquire sequence lock for region split. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles ae773fbf62 Mixer: Tweak appearance. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 6bde5017f5 Mixer,Timeline: Fix port connection drag and drop between applications. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles da78618e5b Mixer: Make meters more efficient. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 368492f1c0 Sequencer: Use a 3 break gradient for velocity colors. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 5ea0c24468 Sequencer: Fix crash in event editor. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles d84416c196 Mixer/Module_Parameter_Editor: Tweak layout so that 4-Band Parametric Filter plugin is more legible. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles a59823e4c5 Mixer: Tweak strip highlighting. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 6673606262 Mixer: Tweak meter appearance. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 54e8737a90 Timeline: Don't forget to log changing takes after the fact. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 0157734a30 Timeline: Add "Disabled" fade type to disable both fade and declicking for cases where regions need to be abutted perfectly. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 655ccf94c3 Mixer: Avoid some unnecessary redraws when opening project. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles a9846d1fc3 Mixer: Tweak meter appearance. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles ad6dbba07c Timeline: Split OSC send and receive functionality into different threads. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 362a153412 nonlib/OSC/Endpoint: Work around for liblo/UDP layer dropping packets on bulk signal listing. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 830823a226 Mixer/DPM: Quick hack to add smoothing to meter values. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles dd274db49b Mixer/Module_Parameter_Editor: Tweak slider appearance. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 13c107ebcc Mixer: Tweak meter appearance to look better with light color schemes. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles b1d59fc68a Timeline,Mixer: Tweak colors for light themes. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles e42b50814a FL/Fl_Sometimes_Input: Allow user to abort edit with Escape key. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 628fef30e9 Mixer/Module_Parameter_Editor: Increase font sizes, tweak boxtypes. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 53ff9621ff Sequencer: Fix bug in fitting scale to viewport. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles ee872467fb Mixer: Make panner points more opaque. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 9987f78a72 Mixer: Dezipper spatializer azimuth and elevation automation. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 7895b5ec7e Mixer: Allow Mono Pan module to be added a stereo chain. This converts the signal to mono and then pans the result. Useful for auditioning a mix in mono. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 83f7aa87f0 Timeline: Tweak styling of selected regions. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 8d6885387b Mixer: Show strip number at top of each strip (eases mentally mapping onto hardware control surface). 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 4c14cdd350 Timeline: Redraw right hand child region on split. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles b13d2da674 Timeline: Fix rare segfault which occurred when region loop point is just beyond the end of a region and at the beginning of a buffer. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 5378bbbb27 Timeline: Improve error message for sf_open create. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles b0d850ff76 nonlib/MIDI: Cleanup some type signatures. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles e5c08b3b58 MIDI-Mapper: Require controls to be actuated/moved twice before mapping signal in order to detect whether value has 14, 7 or 1 significant bits.
Also, support non-motirzed faders/endless encoders by not transmitting control change until value of controller comes within 5% of value of signal.
Also, change file format (backwards compatible).
Also, fix some issues with NRPN decoding.
2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 572f94ad44 MIDI-Mapper: Preserve mapping creation order when loading/saving. This makes it possible to fiddle controls in a defined order and then edit the file to give them useful names. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles e36a053b84 Sequencer: Don't crash when user picks the branch instead of the leaf in scale chooser. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 10bcd0c2d7 Midi-Mapper: Don't get confused if user neglects to operate all controls on the first run. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles cd4896b762 Sequencer: Just use theme UP_BOX for note shape... 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 19b7927f08 Sequencer: Tweak appearance to look better with different color schemes. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles a2089421b1 Mixer: Give better visual feedback in control OSC/MIDI learning mode. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 5affbe4cef Mixer: Fix osc/midi by-number mode control for strips with names containing punctuation and spaces. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 9b87c089d0 Mixer: Improve contrast with light color scheme. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles cb3d4f9254 Mixer: Remove superfluous semicolon. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 9330b07d99 Mixer: Fix off by one bug in strip autoconnect affecting Auxes. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles a578cbb8e1 Sequencer: Add some missing items to GM Drum note map. 2021-01-09 15:00:35 -08:00
Jonathan Moore Liles 820298f4dd Timeline: Make clocks look more contrasty with light color scheme. 2021-01-09 15:00:23 -08:00
Jonathan Moore Liles 992e55bf0d Sequencer: Fix configuration bug causing error message "Couldn't open instrument directory". 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles 81e24f4239 Sequencer: Fix off-by-one bug preventing notes from being inserted ahead of other notes. 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles 6bee859f6f Timeline: Tweak style of measure lines. 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles 455cc0f3ad Timeline: Tweak style of audio regions. 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles 8109ff7bc0 Sequencer: Fix casting/sign related bug which could cause a hang during SMF writing. 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles 1a07dda5d9 Sequencer: Save file to tmp file before overwriting original. 2021-01-05 18:20:24 -08:00
Jonathan Moore Liles b3ffef17b5 Mixer: Show strip number at top of each strip (eases mentally mapping onto hardware control surface). 2021-01-05 18:20:23 -08:00
Jonathan Moore Liles a7a7b967c8 Mixer: Tweak module colors. Show LADSPA plugins in a different color. 2021-01-05 18:20:23 -08:00
falkTX 55de086026 Add 128x128 hicolor as possible icon path
128 / 32 = 4, so it scales cleanly

Fixes showing icon for zynaddsubfx and carla
2021-01-05 18:12:32 -08:00
Jonathan Moore Liles 7565be85fb Session-manager: Work around for clients with stupidly large icons. 2021-01-03 18:35:37 -08:00
Jonathan Moore Liles 0106604073 Mixer: Fix crash when closing project containing certain configurations of modules. 2021-01-02 13:28:13 -08:00
Jonathan Moore Liles 97d12322f5 Revert "Merge remote-tracking branch 'diovudau/master'"
This reverts commit bbe8386499, reversing
changes made to d958df0486.

Change was poorly thought out, unnecessary, ill advised, and poorly implemented, but was accepted in the name of diplomacy. That was a mistake. Reverting.
2021-01-02 13:25:53 -08:00
Jonathan Moore Liles bbe8386499 Merge remote-tracking branch 'diovudau/master' 2020-03-06 21:48:57 -08:00
Nils aa940df662 Add message /nsm/gui/session/root to ask for the absolute path of the NSM directory 2020-03-02 18:29:27 +01:00
Jonathan Moore Liles d958df0486 Upgrade waf to 2.0.18
Closes #253
2019-09-25 00:03:13 -07:00
Olivier Humbert c15bfa85fd Update non-timeline.desktop.in 2018-09-16 11:14:52 -07:00
Olivier Humbert 7f0cc1d733 Update non-session-manager.desktop.in 2018-09-16 11:14:52 -07:00
Olivier Humbert 911a9bded4 Update non-sequencer.desktop.in 2018-09-16 11:14:52 -07:00
Olivier Humbert d280f9391f Update non-mixer.desktop.in 2018-09-16 11:14:52 -07:00
Jonathan Moore Liles ea6ff30cea wscript: Fix install error caused by upgrade to waf 2.0.9.
Closes #244
2018-08-25 13:16:36 -07:00
Jonathan Moore Liles d0432caa0b Update NTK submodule. 2018-08-21 18:10:14 -07:00
Jonathan Moore Liles 9e9f90f2f0 Upgrade waf to 2.0.9
Closes #244
2018-08-20 21:21:38 -07:00
Jonathan Moore Liles 5ae43bb27c nonlib/OSC: Don't try to send feedback to non-existent path.
Closes #227.
2018-02-14 17:28:39 -08:00
Jonathan Moore Liles 1904aba516 Non-Mixer: Tweak MIDI mapping section of doc and render MUP to HTML. 2017-07-08 10:11:23 -07:00
Jonathan Moore Liles 9fdf3a6ae3 Merge documentation patch. 2017-07-08 09:47:11 -07:00
Jonathan Moore Liles a2971c0718 wcsript: Fix syntax for Python3.
Closes #216
2017-05-14 12:06:51 -07:00
Jonathan Moore Liles 63a624414b wscript: Automatically disable SSE on platforms that don't support it (i.e. raspberry pi)
Closes: #213
2017-05-06 21:17:56 -07:00
non25 7f42caf789 Additional info
Added info about MIDI controller usage, and info on getting OSC paths for Module controls.
2017-04-24 15:53:08 +03:00
Jonathan Moore Liles 3d18cf37b9 Update NTK. 2017-04-23 10:38:07 -07:00
Jonathan Moore Liles 10c31e5729 Timeline: Add option to import source at mouse via timeline context menu (as an alternative to DND)
Closes #211.
2017-03-28 18:12:56 -07:00
Jonathan Moore Liles 1daf0f6150 Replace deprecated scanf %a modifier with %m. 2017-03-28 18:12:56 -07:00
Jonathan Moore Liles e7f4a1c4b9 Timeline: Rework region loop and loop declick logic. 2016-12-09 19:13:52 -08:00
Jonathan Moore Liles 754d113b0e Timeline: Rework region fade in/out and declick logic.
Closes #204
2016-12-06 17:19:12 -08:00
Jonathan Moore Liles a22f33f486 Merge pull request #201 from hilbrichtsoftware/master
Change 4 lines in the docs to reflect that the server sends server-co…
2016-10-13 15:26:29 -07:00
Nils Hilbricht 35d06de361 Change 4 lines in the docs to reflect that the server sends server-control in capabilities not server_control 2016-10-14 00:20:56 +02:00
martin f572e331ee Unblock SIGCHLD for launched processes 2016-05-30 20:41:26 +01:00
Daniel Appelt 16885e69fe Add missing first event to sequencer event editor 2016-04-05 23:21:45 +02:00
Jonathan Moore Liles 3946d39221 Mixer: Fix issues with port auto-connection
Closes #188
2016-03-05 15:02:54 -08:00
Jonathan Moore Liles 1ef382fbbe NSM: Fix mem/fd leaks
Closes: #187
2016-02-06 17:51:05 -08:00
Jonathan Moore Liles 5d274f430c Non-Sequencer: Don't die in event editor when inserting event with none selected.
Closes #182, #118
2015-12-16 17:57:09 -08:00
Jonathan Moore Liles 88fe7e7b97 Mixer/AUX_Module: Define can_support_inputs function.
Closes #181
2015-10-06 17:16:57 -07:00
Jonathan Moore Liles b57f891e6d OSC: Fix OSC method deletion upon signal deletion.
Closes #184
2015-10-05 17:58:49 -07:00
Jonathan Moore Liles 5984b12b1a Timeline: Fix invalid output of control sequence playback before initial and after final control point.
Closes #180
2015-10-03 20:23:09 -07:00
Jonathan Moore Liles f483957996 OSC: Fix dangling method on signal rename.
Closes #174
2015-10-02 17:38:54 -07:00
Jonathan Moore Liles cfe4aec158 Timeline: Fix segfault in control sequence playback
Closes #173
2015-10-02 17:38:45 -07:00
Jonathan Moore Liles fe51e322f3 OSC: Fix signal lookup in removal notification handler.
Closes #176
2015-09-30 17:37:34 -07:00
Jonathan Moore Liles c0113d1e7a Timeline: Don't let sequence widgets swallow events meant for track header.
Closes #177
2015-09-30 17:37:27 -07:00
Jonathan Moore Liles abde7f3bb5 Mixer/Controller_Module: Shutdown JACK port when switching off CV mode.
Closes #172
2015-09-29 22:11:49 -07:00
Jonathan Moore Liles 156fd6d453 Revert "Timeline: Fix bug in track right click handling."
This reverts commit 8a6772b6b9.

Closes #171
2015-09-29 22:11:49 -07:00
Jonathan Moore Liles aefc328c2d Timeline: Improve drag scrolling behavior. 2015-09-29 22:10:37 -07:00
Jonathan Moore Liles 97d149421f Timeline: Cleaner fix for resize behavior. 2015-09-29 22:10:29 -07:00
Jonathan Moore Liles 3e4c6e9a50 Timeline: Fix determination of project name from command-line.
Closes #169
2015-09-29 22:10:19 -07:00
Jonathan Moore Liles 640bfbb4d1 Timeline: Improve window resize behavior. 2015-09-22 17:44:14 -07:00
Jonathan Moore Liles 386d293650 Timeline: Hide spacer widget that was interfering with drag and drop event delivery.
Closes #165
2015-09-21 17:34:44 -07:00
Jonathan Moore Liles 83fa3637f6 Timeline/Control_Sequence: Use un-clamped X values for drawing curves. 2015-09-18 17:25:58 -07:00
Jonathan Moore Liles e42f0a9bd7 Timeline: Fix region box drawing error. 2015-09-18 17:25:48 -07:00
Jonathan Moore Liles 319a393cd6 Timeline: Fix region/fade drawing at tight zoom levels.
Closes #164
2015-09-17 19:34:22 -07:00
Jonathan Moore Liles 037ecb5d9f Mixer: Fix delayed OSC response in noui mode.
Closes #152
2015-09-14 17:24:49 -07:00
Jonathan Moore Liles dc25c750fb Timeline: Fix false region drag between tracks triggered by region context menu use. 2015-09-09 17:19:30 -07:00
Jonathan Moore Liles 40e7b77420 Timeline: Fix logging of region split at playhead. 2015-09-09 17:18:42 -07:00
Jonathan Moore Liles 8fbcb4eb79 Timeline: Ensure that pushed widget gets FL_RELEASE event even when being dragged unto a another track. 2015-09-08 17:28:47 -07:00
Jonathan Moore Liles cf8e553bb4 Timeline/Audio_Region: Ensure the region splits are logged as a group.
Closes #166
2015-09-08 17:27:51 -07:00
Jonathan Moore Liles 18a299cac7 Add track height "Enormous".
Closes #156
2015-04-04 14:53:18 -07:00
Jonathan Moore Liles 8a58591067 Timeline: Don't attempt to join thread that hasn't been created.
Closes: #154
2015-03-23 18:01:39 -07:00
Jonathan Moore Liles 0047df03fe Timeline: Don't die if punch-in frame is before first block of recorded audio. 2015-03-11 23:05:47 -07:00
Jonathan Moore Liles 60059f4005 Timeline: Fix assertion triggered by failure to join a diskthread which self-terminated due to punch-out. 2015-02-15 15:47:55 -08:00
Jonathan Moore Liles ab88b2d3ec nonlib/Thread: Separate running() logic from thread descriptor. 2015-02-14 16:13:48 -08:00
Jonathan Moore Liles 7934a71c70 nonlib/Thread: Don't clear _thread in exit(), because join() will need it later.
Closes: #134
2015-02-14 15:45:12 -08:00
Jonathan Moore Liles e230929a57 NSM Proxy: Detect, log, and display startup errors of proxied process. 2014-09-22 20:44:42 -07:00
Jonathan Moore Liles 6bd899f223 NSM: Fix typo in --help text.
Closes #137
2014-09-18 20:35:40 -07:00
Jonathan Moore Liles 57653d5cdf Timeline: Don't die when undo function is used when no project is open or when there is nothing left to undo. 2014-07-21 22:31:10 -07:00
Jonathan Moore Liles 686d830402 Mixer: Don't segfault when user right-clicks on channel number module.
Closes: #128
2014-06-18 20:55:00 -07:00
Jonathan Moore Liles 9d39699950 Timeline: Add more more keybindings, particularly of performing actions at the location of the playhead. 2014-06-07 16:44:36 -07:00
Jonathan Moore Liles 9790201fd8 Timeline: Fix bug where opening context menu on a region is equivalent to initiating a drag on that region.
Closes #126
2014-06-07 16:43:39 -07:00
Jonathan Moore Liles d881dce874 Timeline: Avoid deadlock in diskthread. 2014-06-07 14:24:24 -07:00
Jonathan Moore Liles 55bbce6d24 Timeline: Move punch logic to record diskthread. Punches are now sample accurate and work better in freewheeling mode. 2014-06-07 14:24:24 -07:00
Jonathan Moore Liles 6f3e96f311 Maybe silence -Wunused-result warnings on arch. 2014-05-29 18:03:27 -07:00
Hanspeter Portner 2d43a8abe7 Use new Jack Metadata API to mark CV ports.
By adding metadata key "http://jackaudio.org/metadata/signal-type" value "CV" pair to CV ports, patch bays can discriminate between audio and CV ports (SVN patchage e.g. can already do so).

Metadata API is only implemented in Jack1 for now, this patch will thus have no effect when linked to Jack1/2 without support for metadata.
2014-05-23 15:39:42 +02:00
Jonathan Moore Liles 467e369cd1 Timeline: Update syntax of impor-ardour-session script to work with python3. 2014-05-04 13:22:32 -07:00
Jonathan Moore Liles 5b0d6e6bd1 Upgrade waf. 2014-04-29 18:03:29 -07:00
Jonathan Moore Liles de7c7ae0b8 Timeline: Add capture formats for W64
Closes #114
2014-03-14 17:41:10 -07:00
Jonathan Moore Liles 5d5b22afd4 Mixer: Avoid operations that would attempt to open the X display when running in noui mode.
Closes #104
2014-02-10 21:32:43 -08:00
Jonathan Moore Liles 13c3ca8eb8 Timeline: Fix error in reference counting of newly recorded clips. 2013-10-25 18:35:30 -07:00
Jonathan Moore Liles d795a484f0 Mixer: Fix redundant operations in strip removal. 2013-10-21 17:30:50 -07:00
Jonathan Moore Liles f6c0e48a50 Mixer: Fix law hint on gain and aux module controls. 2013-10-21 17:30:44 -07:00
Jonathan Moore Liles 1aafc5330f Fix behavior of vertical sliders. 2013-10-12 15:38:45 -07:00
Jonathan Moore Liles 23107541c8 Mixer: Tweak spectrum view appearance. 2013-10-12 14:23:42 -07:00
Jonathan Moore Liles f3fdea50d6 Mixer: Don't leak spectrum view windows. 2013-10-12 14:23:06 -07:00
Jonathan Moore Liles de6c22ac46 Implement logarithmic slider mode. 2013-10-12 12:51:05 -07:00
Jonathan Moore Liles 50a5f66fff Mixer/SpectrumView: Add zero line and more dB levels. Also, remove Hz and Db labels. 2013-10-08 18:40:03 -07:00
Jonathan Moore Liles e6313394cd Timeline: Allow recording in punch mode when playhead is in the middle of a punch cursor. 2013-10-05 21:12:43 -07:00
Jonathan Moore Liles 7770610d32 Timeline: Defer creation of audio file for recording until blocks are ready to be written.
This prevents unnecessary file creation in punch mode.
2013-10-05 20:58:41 -07:00
Jonathan Moore Liles 45a33b8467 Mixer: Tweak spectrum view. 2013-10-05 19:50:37 -07:00
Jonathan Moore Liles 1b3994a5f1 Mixer/Panner: Add 3 meter range setting. 2013-10-04 18:10:30 -07:00
Jonathan Moore Liles 3628f08fbc Mixer: Fix bug with strip copy/paste due to groups. 2013-10-04 18:10:03 -07:00
Jonathan Moore Liles d332da3c39 Mixer: Fix some issues with the new spectrum view. 2013-10-01 18:08:35 -07:00
Jonathan Moore Liles 6673dcd28e Mixer: Implement plugin spectrum view. 2013-09-30 19:10:17 -07:00
Jonathan Moore Liles cf46b447d0 Mixer: Make slider value drag sensitivity the same regardless of range. 2013-09-28 17:10:15 -07:00
Jonathan Moore Liles 8109c20e5c Mixer: Fix direction of value dragging for vertical sliders. 2013-09-28 17:02:17 -07:00
Jonathan Moore Liles 8856216d86 Timeline: Fix normalization of multi-channel regions. 2013-09-26 22:54:06 -07:00
Jonathan Moore Liles 7c71faab1c Mixer: Fix compiler warning. 2013-09-24 21:40:09 -07:00
Jonathan Moore Liles 504b77f6c7 Mixer/Plugin_Chooser: Fix corruption of name display. 2013-09-24 21:39:10 -07:00
Jonathan Moore Liles 200bfe91ca Mixer: Effectively whitelist TAP plugins even though flagged as not RT safe. 2013-09-24 21:38:37 -07:00
Jonathan Moore Liles 83fceb23dc Timeline: Improve behavior of audio region gain adjustment mode. 2013-09-23 23:33:36 -07:00
Jonathan Moore Liles 2e49295320 Timeline: Fix some issues with audio region waveform alignment when drawing. 2013-09-23 23:33:24 -07:00
Jonathan Moore Liles 6bbe69e712 Timeline: Fix error in drawing of region fade outs. 2013-09-21 20:06:48 -07:00
Jonathan Moore Liles 52150723c6 NSM: Tweak GUI appearance. 2013-09-20 23:18:37 -07:00
Jonathan Moore Liles b85ba3c2d9 nonlib/Loggable: Get rid of some line length limitations. 2013-09-20 23:02:02 -07:00
Jonathan Moore Liles 51bce6124e Timeline: Tweak region appearance. 2013-09-20 17:40:20 -07:00
Jonathan Moore Liles 2ea366a409 Timeline: Order region finalization to ensure correct logging. 2013-09-20 17:39:19 -07:00
Jonathan Moore Liles 97573f0299 Mixer: Keep new sliders from swallowing Ctrl+V. 2013-09-19 23:13:34 -07:00
Jonathan Moore Liles 423a8428e1 Mixer: Fix focus issues with new sliders. 2013-09-19 21:28:02 -07:00
Jonathan Moore Liles 5ab7d7c410 Mixer: Fix OSC pathname generation when running without NSM. 2013-09-19 09:23:03 -07:00
Jonathan Moore Liles 55b020f3a0 Update NTK. 2013-09-18 23:29:35 -07:00
Jonathan Moore Liles b7b3d499e5 Mixer: Enable keyboard value input and mouse value dragging on slider controls. 2013-09-18 23:28:58 -07:00
Jonathan Moore Liles 47f15d9937 MIxer/Chain: Fix race condition. 2013-09-18 21:56:31 -07:00
Jonathan Moore Liles 4d20ed0f7b Mixer/Parameter Editor: Tweak appearance. 2013-09-18 17:26:23 -07:00
Jonathan Moore Liles ea0c2839c1 Mixer: Improve display of strip 'control' tab. 2013-09-18 17:10:23 -07:00
Jonathan Moore Liles d97a2ee7ba Mixer/Module_Parameter_Editor: Change default view from knobs to horizontal sliders. Make toggle buttons smaller. 2013-09-15 15:40:27 -07:00
Jonathan Moore Liles f3b73381d7 More latency compensation tweaks. 2013-09-14 19:50:38 -07:00
Jonathan Moore Liles 8675f7d31c Mixer: Fix typo in plugin error message. 2013-09-14 16:47:17 -07:00
Jonathan Moore Liles a9d547e794 Mixer/DPM: Avoid clipping topmost segment when drawing. 2013-09-14 11:17:14 -07:00
Jonathan Moore Liles 6d7a71636a Mixer: Fix issue with meter module eating ctrl+left click event. 2013-09-14 11:17:01 -07:00
Jonathan Moore Liles 9b634cf001 Tweak latency reporting/compensation. 2013-09-14 11:17:01 -07:00
Jonathan Moore Liles 758f7b86b4 Mixer: Include all outputs in autoconnect wildcard group. 2013-09-09 23:12:36 -07:00
Jonathan Moore Liles eb482d3a36 Timeline: Add option for per-track delay-free playback latency compensation. Disabled by default. 2013-09-09 18:46:28 -07:00
Jonathan Moore Liles 795249a612 Mixer: Adjust threshold of boolean control via OSC. 'On' state is triggered at > half of maximum value. 2013-09-09 17:28:31 -07:00
Jonathan Moore Liles cc7f6a93ab Mixer/midi-mapper: Fix range error in translation affecting toggle controls. 2013-09-09 17:26:53 -07:00
Jonathan Moore Liles a102d76912 Panner: Use appropriate backdrop when switching projections. 2013-09-09 17:25:34 -07:00
Jonathan Moore Liles 7f5e9f1e9b Mixer: Tweak appearance of group DSP meters. 2013-09-08 20:52:09 -07:00
Jonathan Moore Liles 19b19edf0e Mixer: Make panner widget scalable again. 2013-09-08 20:00:40 -07:00
Jonathan Moore Liles 17e7ad0ad6 Mixer: Add global command to swap signal and fader views, move signal/fader button to free up vertical space in layout. 2013-09-08 19:22:58 -07:00
Jonathan Moore Liles 3fad04c2d5 Mixer: Tweak appearance. 2013-09-08 13:59:52 -07:00
Jonathan Moore Liles 00ed29d6c2 Tweak DSP optimization. 2013-09-08 13:56:03 -07:00
Jonathan Moore Liles fc5c59c61d Mixer: Implement port autoconnection system. 2013-09-07 18:34:12 -07:00
Jonathan Moore Liles a05384a8c3 Mixer: Change the appearance/layout of slider modes in parameter editor. Also, add scroll widget. 2013-09-07 16:58:16 -07:00
Jonathan Moore Liles 7da3bb325f Add fancy new focus frame. 2013-09-06 23:42:21 -07:00
Jonathan Moore Liles 933bfe882a Mixer: Work around some quirks in hints of some plugins. 2013-09-06 23:08:46 -07:00
Jonathan Moore Liles 963d926659 Timeline: Fix diskstream flushing/shutdown. 2013-09-06 19:12:40 -07:00
Jonathan Moore Liles 3ca72b4ac6 Timeline: Change keybinding for track height adjustment. 2013-09-06 00:46:48 -07:00
Jonathan Moore Liles 58fdf7d914 Timeline: Fix numerous issues with diskstream. 2013-09-06 00:15:43 -07:00
Jonathan Moore Liles 9fba8a8577 Mixer: Make spatializer view options song global. 2013-09-02 12:11:10 -07:00
Jonathan Moore Liles cf5c557c2f Mixer: Don't lose panner settings when toggling Spatializer Advanced Options. 2013-09-02 11:35:32 -07:00
Jonathan Moore Liles b3a9d0be1d Mixer/Spatializer_Module:
Remove distance related frequency effects.
Add control to disable delay effects.
Add angle control with frequency and reflection effects.
Add advanced options for controlling early and late reverb send amounts.
2013-09-01 21:37:28 -07:00
Jonathan Moore Liles e927781ee0 Mixer: Add mute control to Gain module and Mute button to each mixer strip. 2013-09-01 21:35:35 -07:00
Jonathan Moore Liles 2cca17376a Mixer/Module: Clean up some focus issues, add tooltip, and focus keybinding. 2013-09-01 20:13:44 -07:00
Jonathan Moore Liles bf232b3928 Mixer/Spatialization_Console: If screen isn't large enough, use smaller window. 2013-09-01 18:57:28 -07:00
Jonathan Moore Liles 6f42e2b816 Mixer: Change default spatializer range from 10 to 5 meters. 2013-09-01 18:57:23 -07:00
Jonathan Moore Liles c662ff4332 Timeline: Lower opacity of cursor overlays. 2013-08-30 22:24:06 -07:00
Jonathan Moore Liles 1d9bd576f6 Sequencer: Fix uninitialized value. 2013-08-30 18:10:49 -07:00
Jonathan Moore Liles db2b1e0952 Mixer/Spatializer: Change default value of highpass to 0hz (bypassed) 2013-08-28 23:51:25 -07:00
Jonathan Moore Liles 89f62c13a4 Fix conditional compilation typo. 2013-08-27 23:02:52 -07:00
Jonathan Moore Liles f8f6bad322 Mixer: Fix copy and paste of spatializer module. 2013-08-27 23:02:36 -07:00
Jonathan Moore Liles 442003e61f Mixer: Further tweak plugin name abbreviation. 2013-08-26 23:05:27 -07:00
Jonathan Moore Liles a1336880b5 Timeline: Fix 'Vary Color' region drawing mode. Also, tweak appearance. 2013-08-26 21:43:20 -07:00
Jonathan Moore Liles 4bf4a1ef14 Timeline: Always wait for diskstreams when freewheeling. 2013-08-25 21:45:40 -07:00
Jonathan Moore Liles 55f54085c5 OSC: Escape pattern matching characters in signal names. 2013-08-25 19:12:53 -07:00
Jonathan Moore Liles 96a6709fe8 Update latency compensation code for new JACK latency API. 2013-08-25 13:24:33 -07:00
Jonathan Moore Liles 40352db651 Mixer: Fix aux module broken by group changes. 2013-08-24 17:45:42 -07:00
Jonathan Moore Liles d5741f9999 Clean up some compiler warnings. 2013-08-23 20:41:17 -07:00
Jonathan Moore Liles 2545510006 Mixer/Plugin_Module: Fix detection of INTEGER hint when default 1 hint is specified. 2013-08-23 17:05:27 -07:00
Jonathan Moore Liles 865a14b74b Mixer: Fix saving of JACK inputs setting as adjusted from buttons on JACK module. 2013-08-23 17:05:27 -07:00
Jonathan Moore Liles 4c5551ad8e Mixer: Fix opening project by relative pathname on commandline. 2013-08-23 17:05:23 -07:00
Jonathan Moore Liles 4bda8db1fd Mixer: Improve module name abbreviation. 2013-08-23 17:04:25 -07:00
Jonathan Moore Liles 839ed187d6 Mixer/Plugin_Module: Avoid unnecessary plugin reactivation. 2013-08-22 18:37:04 -07:00
Jonathan Moore Liles 8fe598eff4 Timeline: Fixes for flac and ogg/vorbis playback and recording. Add new Ogg capture formats at various quality levels. 2013-08-22 18:37:04 -07:00
Jonathan Moore Liles 2afec38a54 Timeline: Read interleaved blocks of samples from libsndfile, rather than processing one channel at a time. 2013-08-22 18:36:59 -07:00
Jonathan Moore Liles ff41fb9f81 wscript: Test for __builtin_assume_aligned which is new in GCC 4.7. 2013-08-16 17:34:04 -07:00
Jonathan Moore Liles ca7d95a92d Mixer: Update documentation 2013-08-15 21:46:19 -07:00
Jonathan Moore Liles f68232ab5c Sequencer: Cover up bug in gcc-4.8. 2013-08-14 18:10:42 -07:00
Jonathan Moore Liles 03fcf31311 Sequencer: GUI tweaks. Get rid of randomize row feature. 2013-08-14 18:08:46 -07:00
Jonathan Moore Liles 04c8e908e8 Sequencer: Implement simple undo. 2013-08-14 18:05:52 -07:00
Jonathan Moore Liles 451e948a17 Sequencer: GUI tweaks. 2013-08-14 18:05:43 -07:00
Jonathan Moore Liles 8055e08e9e Sequencer: Fix instrument path. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles a797093a58 Sequencer: Fix initial canvas display. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles 6e776faf24 Sequencer: Cleanup prototypes. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles b8184ac910 Sequencer: Fix pattern insertion trigger length on phrase. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles a30d065cb7 Sequencer: Tweak canvas drawing. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles 8001b1b2c1 Sequencer: Fix edit menu for phrase mode. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles 8101abafeb Work around another retarded bug in binutils-gold. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles a872d99e9b Sequencer: More simplification of pattern drawing. 2013-08-14 18:03:28 -07:00
Jonathan Moore Liles cec17e7990 Sequencer: Remove canvas optimizations in favor of simpler drawing. 2013-08-14 18:02:11 -07:00
Jonathan Moore Liles 09fe968264 Sequencer: Clean up event editor display/scrolling behavior. 2013-08-14 18:02:11 -07:00
Jonathan Moore Liles 68655cc599 Sequencer: Replace pattern number spinner with value slider. 2013-08-14 18:02:11 -07:00
Jonathan Moore Liles 46d2324446 Timeline/Fade: minor cleanup. 2013-08-14 17:55:14 -07:00
Jonathan Moore Liles e578deb112 Timeline: Avoid unaligned access. 2013-08-14 17:54:38 -07:00
Jonathan Moore Liles 1cb9f68cf1 Mixer: Limit rate of DSP meter updates. 2013-08-14 17:11:35 -07:00
Jonathan Moore Liles 19487a72e4 Tweak buffer ops for GCC auto vectorization. 2013-08-13 22:50:30 -07:00
Jonathan Moore Liles 9b8f02fbf3 NSM/NSM Proxy: Add two new options. Stop Signal and Config File. 2013-08-13 22:50:30 -07:00
Jonathan Moore Liles 21ab68d3e5 NSM/JackPatch: Replace mutex in callback handling with ringbuffer (may help with JACK1 which runs the callbacks in the RT thread). 2013-08-13 22:50:30 -07:00
Jonathan Moore Liles d1c4fe418b Midi-Mapper: Close gracefully on sigterm. 2013-08-13 22:50:30 -07:00
Jonathan Moore Liles b0fc87ec86 Mixer: Fix group membership of new strips. 2013-08-13 22:50:19 -07:00
Jonathan Moore Liles fab76b1c4f Set FTZ and DAZ flags by default for all JACK client threads. 2013-08-09 17:41:11 -07:00
Jonathan Moore Liles dd21a18c81 Mixer: Add group DSP meters. 2013-08-08 23:32:44 -07:00
Jonathan Moore Liles 5ccc6e7595 Mixer: Implement basic groups. 2013-08-08 12:57:26 -07:00
Jonathan Moore Liles d2b2c0808d Timeline: Fix double free in project open
Closes #71
2013-08-01 09:14:33 -07:00
Jonathan Moore Liles e6d153c13c Sequencer: Work around internal compiler error bug in GCC 4.8. 2013-07-31 21:26:06 -07:00
Jonathan Moore Liles 9837a8f3f7 Timeline: Fix typo. 2013-07-31 21:25:42 -07:00
Jonathan Moore Liles 0da98f95b8 Fix some memory leaks and other valgrind warnings. 2013-07-30 21:36:35 -07:00
Jonathan Moore Liles a3f1265ef3 Timeline: Reduce window minimum height. 2013-07-23 22:52:15 -07:00
Jonathan Moore Liles 612fdfe952 Mixer: Save/restore state of spatialization console. 2013-07-21 20:20:42 -07:00
Jonathan Moore Liles 0d42bf3483 wscript: tweak optimization options. 2013-07-20 17:41:53 -07:00
Jonathan Moore Liles 50d5411411 Mixer/Spatializer: Fade delay into non-interpolating mode when source is stationary. 2013-07-20 16:29:09 -07:00
Jonathan Moore Liles 2da6c503aa NSM/jackpatch: Sort connections before saving. 2013-07-19 18:13:50 -07:00
Jonathan Moore Liles 8d330997d1 Mixer/midi mapper: Use proper NSM client ID. 2013-07-18 00:26:48 -07:00
Jonathan Moore Liles 932a78c747 Mixer: Fix jack client rename on strip rename. 2013-07-18 00:26:42 -07:00
Jonathan Moore Liles e95fd10775 Mixer: Fix panner control connection to old ambisonics LADSPA plugins. 2013-07-17 19:13:33 -07:00
Jonathan Moore Liles be025b00b9 Mixer: Add cross hairs to panner plane backdrop. 2013-07-17 19:12:43 -07:00
Jonathan Moore Liles b31eef9c36 Mixer/DPM: Fix reposition interfering with optimized drawing. 2013-07-16 20:58:43 -07:00
Jonathan Moore Liles 123d45c1ae Update NTK. 2013-07-16 20:58:43 -07:00
Jonathan Moore Liles e88c255d45 Mixer: Fix initial size. 2013-07-16 20:58:42 -07:00
Jonathan Moore Liles 70856a6e8e OSC Signal cleanups. 2013-07-16 20:58:42 -07:00
Jonathan Moore Liles cfd451c4d6 Mixer: Implement Spatializer module. 2013-07-16 20:58:36 -07:00
Jonathan Moore Liles a59dad4204 nonlib: Fix bugs in JACK::Port. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles fd1207b75e Mixer: Clip children when drawing modules. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles a958276b06 Timeline: Mark ports as Terminal. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles 1a9741cb7f Mixer: Remove dead signal feedback code. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles 6d2aeaf405 Mixer: Implement Spatialization Console. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles aedbca82be Mixer: Avoid unecessary redraws (hidden widgets, when mixer strips are added). Also, draw fonts of inactive widgets in dimmed color. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles fd64b39fa4 Mixer: Tweaks to by-number learning. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles 0c6a3ea0f8 Mixer: Improve appearance of panner/spatialization widget with pixmap background. 2013-07-16 16:21:13 -07:00
Jonathan Moore Liles a3a8247b83 Mixer: Add connection/disconnection submenu to controller module context menu. 2013-07-16 16:21:12 -07:00
Jonathan Moore Liles 07161196bd Mixer: Use a four color gradient for meters. 2013-07-16 16:21:12 -07:00
Jonathan Moore Liles 6adf6a9389 OSC: Simplify OSC signal protocol. Add midi<->osc gateway program. 2013-07-16 16:21:08 -07:00
Jonathan Moore Liles 37d5dd87b9 Mixer: Implement two way mapping for OSC learning. 2013-07-14 18:06:01 -07:00
Jonathan Moore Liles d7d711807d FL/Fl_Scalepack: Fix resize bug. 2013-07-14 18:05:54 -07:00
Jonathan Moore Liles fad4f7938c NSM: Don't wait on clients that have died while executing a command. 2013-07-14 18:05:29 -07:00
Jonathan Moore Liles d9ba4bda2b Timeline/Control_Point: Don't draw with zero width. 2013-07-13 13:58:26 -07:00
Jonathan Moore Liles bc78302220 Mixer: Avoid unecessary redraws (hidden widgets, when mixer strips are added). Also, draw fonts of inactive widgets in dimmed color.
Conflicts:
	mixer/src/Mixer.C
2013-06-24 17:21:23 -07:00
Jonathan Moore Liles 3b8991c54c NSM_Proxy: save options upon 'start'. 2013-06-23 20:46:09 -07:00
Jonathan Moore Liles 582621edd2 Mixer: Fixes for consolidated timeout. 2013-06-17 19:54:39 -07:00
Jonathan Moore Liles bbffb98981 Mixer: Consolidate all GUI update timeouts into one to avoid unnecessary X events. 2013-06-17 19:26:04 -07:00
Jonathan Moore Liles 72a1e2a5cf Mixer: Implement de-zippering for controls of all built-in modules. 2013-06-15 17:51:50 -07:00
Jonathan Moore Liles 3e932c9930 OSC: Rename OSC method when signal is renamed. 2013-06-03 21:57:11 -07:00
Jonathan Moore Liles 02bb329551 Mixer: Fix connection DND. 2013-05-29 19:40:33 -07:00
Jonathan Moore Liles 54b8dfefb7 Mixer: Allow copy/paste of mixer strips (even between instances). 2013-05-29 18:27:43 -07:00
Jonathan Moore Liles fadeea8a33 Timeline: remove extra fl_pop_clip(). 2013-05-29 18:25:44 -07:00
Jonathan Moore Liles 550fb651c7 Mixer: Improve knob and slider appearance. 2013-05-28 22:11:07 -07:00
Jonathan Moore Liles 6adba68975 Timeline: Fix overlay drawing. 2013-05-28 21:03:59 -07:00
Jonathan Moore Liles b664d0ed04 Timeline: Allow drag and drop moving of tracks. 2013-05-22 23:50:10 -07:00
Jonathan Moore Liles 0552a9a7cf Mixer: Allow drag and drop for moving mixer strips. 2013-05-22 22:45:55 -07:00
Jonathan Moore Liles 960dc543c3 Mixer: Clean up connection DND behavior. 2013-05-22 20:11:41 -07:00
Jonathan Moore Liles 70e23f1994 Timeline: Draw punch/playback/edit cursors in the overlay plane. 2013-05-19 18:24:59 -07:00
Jonathan Moore Liles dafaebb0de NSM: Add quit button/keybinding. 2013-05-14 21:34:27 -07:00
Jonathan Moore Liles 4dcc011ca1 NSM: Write server unresponsiveness to status log instead of popping up an alert window. 2013-05-14 21:03:42 -07:00
Jonathan Moore Liles d0c4be1ff9 NSM: Add timestamp to status log. 2013-05-14 20:58:10 -07:00
Jonathan Moore Liles 5e958416cd Mixer: Save settings for 'Rows' with project.
Closes #48.
2013-05-13 18:02:01 -07:00
Jonathan Moore Liles d4f96fe762 Mixer: Allow creation of mix before creation of project.
Closes #10.
2013-05-13 17:21:57 -07:00
Jonathan Moore Liles 89f2633463 FL/New_Project_Dialog: Don't crash if aborted. 2013-05-13 17:21:50 -07:00
Jonathan Moore Liles d4c15e6fa7 wscript: Fix for Python3. 2013-05-07 18:51:47 -07:00
Jonathan Moore Liles f2bc2b5c9b NTK: Don't keep unneeded clients in session when switching. 2013-05-05 10:30:08 -07:00
Jonathan Moore Liles 8b5f5a76aa NSM: Command all unneeded 'switch' capable clients to exit when switching sessions.
Closes #60.
2013-05-02 23:05:58 -07:00
Jonathan Moore Liles 1c6add6c2b NSM/jackpatch: Rebuild patch network upon NSM save. 2013-05-02 22:18:44 -07:00
Jonathan Moore Liles 3084956664 Mixer: Don't process (dis)connection notifications from JACK while destroying chain. 2013-05-02 20:02:17 -07:00
Jonathan Moore Liles 973089890c Mixer: Clean up some issues with display of JACK connection lists. 2013-05-02 17:07:35 -07:00
Jonathan Moore Liles 899740c2f1 Timeline: Add freewheel button. 2013-05-01 22:04:16 -07:00
Jonathan Moore Liles c351700be0 Timeline: Fix peak display while recording. 2013-05-01 22:00:05 -07:00
Jonathan Moore Liles 1fc7c2eed2 Timeline: Tweak crossfade appearance. 2013-05-01 22:00:05 -07:00
Jonathan Moore Liles 97677c561e Timeline: Don't allow import attempt when no project is loaded. 2013-04-30 22:44:16 -07:00
Jonathan Moore Liles 875ef17575 TImeline: Add GUI for Ardour session import and corresponding menu entry. 2013-04-30 22:38:49 -07:00
Jonathan Moore Liles bf50334890 Timeline: Ardour input script now merges sources for multi-channel tracks instead of creating multiple mono tracks. 2013-04-30 17:26:57 -07:00
Jonathan Moore Liles 2f730acefb Timeline: Update ardour session importer to work with ardour3 sessions. 2013-04-30 12:58:13 -07:00
Jonathan Moore Liles a162876025 Timeline: Make ardour session importer work with ardour1 files. Also, don't fail if sample-rate is not specified. 2013-04-30 10:39:57 -07:00
Jonathan Moore Liles c839d690ab Timeline: Add script to convert Ardour session to Non-Timeline format. 2013-04-29 23:40:36 -07:00
Jonathan Moore Liles ea9d7b2420 Mixer: Fix resize issues with JACK module connection display list. 2013-04-29 23:39:38 -07:00
Roy Vegard Ovesen ec8bfcba63 Make sure that every highest peak value is drawn
As process is usually called more often than
update_cb, we should store the highest peak
value until it is consumed by update_cb.
2013-04-27 16:54:39 +02:00
Jonathan Moore Liles e6e101fc67 Tweak colors. 2013-04-26 21:25:00 -07:00
Jonathan Moore Liles 1945477b10 NSM: Specify window class for NSM-Proxy GUI. 2013-04-25 16:28:40 -07:00
Jonathan Moore Liles 45cf2f7135 Timeline: Fix control sequence highlighting. 2013-04-23 20:21:23 -07:00
Jonathan Moore Liles 5af9afdd8d Mixer: Fix some button handling. 2013-04-22 21:54:45 -07:00
Jonathan Moore Liles 455c93683c Implement drag and drop for making/breaking JACK connections in Non Mixer and Non Timeline.
(Drag jack output module and drop on jack input module of another strip)

In Non Mixer, all JACK modules (including Aux) will now list their connections.
2013-04-21 23:14:52 -07:00
Jonathan Moore Liles 52f016abed Timeline: Fix offset of drag and drop file imports. 2013-04-21 22:59:46 -07:00
Jonathan Moore Liles dcec3282a9 Mixer: Increase font size for fader value. 2013-04-21 22:56:39 -07:00
Jonathan Moore Liles 00a78fdb27 Mixer: Set a default upper bound on module parameters of 1 in case the module (LADSPA Plugins in particular) doesn't specify one. 2013-04-21 19:59:47 -07:00
Jonathan Moore Liles ea380f00f9 FL/Fl_Packscroller: Cleanup event behavior. Eliminate unnecessary vertical padding. 2013-04-21 19:01:47 -07:00
Jonathan Moore Liles 5d59a1d291 NSM: Redraw session list after refresh even if it's empty. 2013-04-19 21:14:31 -07:00
Jonathan Moore Liles 5ea31d47d7 NSM: Fix compiler warning. 2013-04-19 21:13:42 -07:00
Jonathan Moore Liles fc5ef8f9f9 Mixer: Add new module "Aux" to allow creation of "send" topology without requiring an extra strip to control the send gain. 2013-04-16 22:48:41 -07:00
Jonathan Moore Liles 7900ef6add Mixer: Fix segfault on attempt to make osc ports for module ports which shouldn't be controllable. 2013-04-16 22:48:41 -07:00
Jonathan Moore Liles eff5189638 Mixer: Add 'visible' property to port hints. 2013-04-16 22:48:38 -07:00
Roy Vegard Ovesen cbba71a0c8 Fix navigation when located left of 60 sec. 2013-04-15 21:46:13 -07:00
Jonathan Moore Liles 3f3f98b4ca NSM: Make log display one-line high by default.
Closes #51
2013-04-15 17:08:21 -07:00
Jonathan Moore Liles a3c1e806a9 NSM: Disallow adding clients by path name. 2013-04-15 17:06:34 -07:00
Jonathan Moore Liles 92932fb1b0 Mixer/Plugin chooser: Add shortcuts for all and favorites views. 2013-04-14 18:56:41 -07:00
Jonathan Moore Liles 90551b732d Mixer: When listing plugins, properly display mono compatibe plugins. 2013-04-14 18:46:59 -07:00
Jonathan Moore Liles b3830057cb Mixer: Don't list plugins which are unsuitable for RT use. 2013-04-14 18:46:06 -07:00
Jonathan Moore Liles f5eaf5bc2d Mixer: Don't die when spatialization plugin is removed. 2013-04-14 18:45:48 -07:00
Jonathan Moore Liles b4d811adf1 Mixer: Don't hang when terminated while modal window is open. 2013-04-14 15:10:57 -07:00
Jonathan Moore Liles 851be29d6a Mixer/Plugin_Chooser: Add a little padding in table cells. 2013-04-14 14:23:09 -07:00
Jonathan Moore Liles 171975b26b Mixer: Allow searching by category in plugin chooser. 2013-04-14 14:19:07 -07:00
Jonathan Moore Liles 07e40513c6 Minor cleanup. 2013-04-13 21:41:39 -07:00
Jonathan Moore Liles ae633840fb NSM: Add status message log display to GUI. 2013-04-13 21:07:06 -07:00
Jonathan Moore Liles 4ef20c0f71 NSM: Give clients a 5 second period in which to announce themselves--otherwise assume they are dumb clients. 2013-04-13 20:17:18 -07:00
Jonathan Moore Liles 5adba898ef Mixer: Tweak plugin chooser appearance. 2013-04-13 13:37:30 -07:00
Jonathan Moore Liles dd9eb35ab2 Implement plugin browser, with search and favorites. 2013-04-13 13:18:03 -07:00
Jonathan Moore Liles 5d35f37d4e Fix window icons. 2013-04-11 21:02:31 -07:00
Jonathan Moore Liles 6ec8f6e85e NSM/nsm-proxy: unset NSM_URL env var before launching child. 2013-04-11 18:01:29 -07:00
Jonathan Moore Liles 9501e52d54 Timeline: Don't die if user selects nonsense item from Control Sequence Connect To menu. 2013-04-11 17:44:34 -07:00
Jonathan Moore Liles ec09f027d6 FL: Fix layout error in flowpack. 2013-04-11 17:44:26 -07:00
Jonathan Moore Liles 29479f73c4 Mixer: Ensure that meters are drawn correctly before the first resize. 2013-04-10 22:40:58 -07:00
Jonathan Moore Liles cbf7df0e0d Mixer: Clean up strip layout. 2013-04-10 19:23:35 -07:00
Jonathan Moore Liles b531769184 Mixer: Move inputs control. 2013-04-10 19:16:59 -07:00
Jonathan Moore Liles ffcf1454d5 jackpatch: Avoid race condition for ports registered after start but before open. 2013-04-10 17:23:29 -07:00
Jonathan Moore Liles e69a124e27 jackpatch: Don't make unnecessary connection attempts on response to 'open'. 2013-04-10 17:23:20 -07:00
Jonathan Moore Liles 8f89e237e9 FL: Fix error in flowpack layout. 2013-04-10 17:22:51 -07:00
Jonathan Moore Liles e386d963aa Mixer: Tweak strip appearance. 2013-04-10 17:22:33 -07:00
Jonathan Moore Liles f879b9eab5 Mixer: Provide project load progress to NSM. 2013-04-09 17:51:47 -07:00
Jonathan Moore Liles bb26718834 NSM: Wait up to 60 seconds for all clients to close. 2013-04-09 17:50:56 -07:00
Jonathan Moore Liles 4d3e4ca4f1 jackpatch: Don't attempt to make JACK connection when one of the ports doesn't exist yet. 2013-04-09 16:58:41 -07:00
Jonathan Moore Liles ee09187089 Change debug CFLAGS. 2013-04-08 21:03:33 -07:00
Jonathan Moore Liles 0c4161ce85 nonlib: Use GNU extension program_invocation_short_name to get module name for debug output. 2013-04-08 21:03:33 -07:00
Jonathan Moore Liles c794617b30 Mixer: Silence valgrind warning. 2013-04-08 21:03:33 -07:00
Jonathan Moore Liles 9df0e9d665 nonlib: Clean up signals handshaking. 2013-04-08 21:03:29 -07:00
Jonathan Moore Liles d7cf8955b8 NSM: Add clarification to the API document. 2013-04-06 13:02:29 -07:00
Jonathan Moore Liles 5c6e9f8d37 NSM: Don't return false error message from duplicate function.
Closes #34
2013-04-05 19:48:59 -07:00
Jonathan Moore Liles 4103cd016b NSM: Clean up session selection behavior. 2013-04-05 19:06:50 -07:00
Jonathan Moore Liles 271eb2d331 NSM: Clean up GUI resize behavior.
Closes #47.
2013-04-05 18:36:31 -07:00
Jonathan Moore Liles 9230ab3d04 Timeline: Fix potential deadlock when stopping recording. 2013-04-05 17:13:51 -07:00
Jonathan Moore Liles 14b8507fcb NSM: Don't wait for replies from dumb clients! 2013-04-04 20:01:48 -07:00
Jonathan Moore Liles 299193dc60 NSM: Further clarify nsmd debugging output regarding client death. 2013-04-04 20:01:19 -07:00
Jonathan Moore Liles 7bbc97983b NSM: Show client icons in nsm GUI. 2013-04-03 22:06:58 -07:00
Jonathan Moore Liles acb38aca99 NSM: Clarify client X died message. 2013-04-03 19:38:54 -07:00
Jonathan Moore Liles 2c646deebf NSM: Oops. Add "optional-gui" server capability. 2013-04-03 19:36:48 -07:00
Roy Vegard Ovesen daf240d83e Add keyboard shortcut to refresh button 2013-04-01 11:57:33 +02:00
Roy Vegard Ovesen 31f05a7aac A button to refresh the sessions list 2013-04-01 11:49:03 +02:00
Jonathan Moore Liles 31c14150e7 NSM: Fix occasional deadlock of session manager GUI when displaying "Command failed with..." message.
Closes #44.
2013-03-31 16:47:27 -07:00
Jonathan Moore Liles a6a15e2a2d Timeline: Fix backwards navigation by bar and beat.
Simplification of a patch submitted by Roy Vegard Ovesen. Closes #43.
2013-03-30 18:48:41 -07:00
Jonathan Moore Liles 37b881b638 NSM: Add unknown message handler. 2013-03-28 17:19:38 -07:00
Jonathan Moore Liles 815a16f96f Sequencer: Allow saving while transport is running. Closes #40. 2013-03-24 11:49:56 -07:00
Jonathan Moore Liles f137629b93 NSM: Reactivate GUI if server becomes available again. 2013-03-24 01:23:03 -07:00
Jonathan Moore Liles 6a8a2d6e38 NSM: Tweak GUI appearance. Move 'Add client' button to avoid confusion. Closes #33. 2013-03-24 01:22:45 -07:00
Jonathan Moore Liles 92716b103d Mixer: Only display spatialization control when strip is in Fader view. Closes #36. 2013-03-19 18:37:00 -07:00
Jonathan Moore Liles ceb04569e9 FL/Fl_Flowpack: Include Fl_Pack header for value of Fl_Pack::HORIZONTAL. 2013-03-18 22:58:12 -07:00
Jonathan Moore Liles 1aa102a8e4 Update COPYING. 2013-03-18 22:57:52 -07:00
Jonathan Moore Liles 3939576b05 Fl_Flowpack: Fix flowdown alignment. 2013-03-18 22:33:36 -07:00
Jonathan Moore Liles b1586811f9 Fl_Flowpack: Set width appropriately in non-flow mode. Fixes #17. 2013-03-18 22:28:01 -07:00
Jonathan Moore Liles 7d5a0e13f6 nonlib: Use tmp file when generating snapshot. 2013-03-18 17:21:37 -07:00
Jonathan Moore Liles 14099b7cfc nonlib: Add assertions to catch multiple calls to log_create() which would result in duplicate log entries. 2013-03-18 17:21:29 -07:00
Jonathan Moore Liles 0f6d481f88 FL/Fl_Sometimes_Input: Run callback on defocus (including Tab key press). 2013-03-18 17:20:54 -07:00
Jonathan Moore Liles b855493014 Mixer: disable context menu on fader view meter indicators. 2013-03-18 17:20:46 -07:00
Jonathan Moore Liles d2668943e5 NSM: Tweak gui appearance. 2013-03-17 18:01:58 -07:00
Jonathan Moore Liles 7a5425beca Timeline: Fix insertion of control points and copying of all sequence widgets. 2013-03-17 07:05:11 -07:00
Jonathan Moore Liles f0757a09c8 Update NTK. 2013-03-16 21:18:13 -07:00
Jonathan Moore Liles 84e381529e Update NTK. 2013-03-15 18:11:23 -07:00
Jonathan Moore Liles c59554c774 Mixer: Reduce module spacing. 2013-03-15 17:54:49 -07:00
Jonathan Moore Liles e8892926fd Mixer/Chain: Don't block RT thread when printing debugging messages. 2013-03-15 17:54:49 -07:00
Jonathan Moore Liles 0e467993a2 Mixer: Tweak module appearance. 2013-03-15 17:54:49 -07:00
Jonathan Moore Liles d86cda8977 Mixer: Don't die if a plugin specified in the project can't be loaded. Requires storing plugin I/O config in project file. 2013-03-15 17:54:49 -07:00
Jonathan Moore Liles 42072343d3 Mixer: Fix persistence of bypass setting for LADSPA plugins. 2013-03-15 17:54:37 -07:00
Jonathan Moore Liles b1eb988257 Mixer: Refuse to bypass modules whose channel configuration makes bypassing illogical. 2013-03-15 00:05:23 -07:00
Jonathan Moore Liles f29a132dfc Get rid of FL/FL symlink. 2013-03-14 17:32:15 -07:00
Jonathan Moore Liles 63c4f68b3b Mixer: Fix plugin bypass and plugin insertion broken by 8b9ef85. 2013-03-14 17:31:46 -07:00
Jonathan Moore Liles 70e0db1c47 Mixer: change active/inactive coloring of modules to make deactivation more visible. 2013-03-14 17:30:50 -07:00
Jonathan Moore Liles a99f707bda Timeline: Fix bug causing occasional duplicate 'create' entries in snapshots. 2013-03-13 18:02:49 -07:00
Jonathan Moore Liles 8b9ef85c80 Mixer: Fix bypass for 1 IN 2 out modules. 2013-03-13 18:02:45 -07:00
Jonathan Moore Liles 0e66baaf21 Timeline: stabilize track order in snapshot output. 2013-03-13 18:02:35 -07:00
Jonathan Moore Liles eb639c9bfd Update NTK. 2013-03-12 17:58:28 -07:00
Jonathan Moore Liles 04d8bd6a8d Timeline: Fix sign warnings in grid snapping code. 2013-03-12 17:56:55 -07:00
Jonathan Moore Liles 252b105e67 Timeline: Fix sign error allowing the beginning of mutliple region selection to be dragged to a position earlier than frame 0. 2013-03-12 17:56:55 -07:00
Jonathan Moore Liles a25ea63389 Timeline: Report name as non-daw when invoked as such, as non-timeline otherwise. 2013-03-12 17:56:55 -07:00
Jonathan Moore Liles 801d1b20fb Timeline: Fix desktop file. 2013-03-12 17:56:55 -07:00
Jonathan Moore Liles 525470392a Timeline: Don't attempt to build peaks for dummy sources. 2013-03-12 17:56:50 -07:00
Jonathan Moore Liles 551ace4547 Fl_Blink_Button: Don't add a new timer if one already exists. 2013-03-12 17:56:43 -07:00
Jonathan Moore Liles b075c82dbd Update NTK. 2013-03-11 00:19:18 -07:00
Jonathan Moore Liles 8e5ccd9093 New icons! 2013-03-10 23:11:43 -07:00
Jonathan Moore Liles 626f79f8c9 Rename Non-DAW to Non-Timeline. Also, update copyright dates. 2013-03-10 17:52:40 -07:00
Jonathan Moore Liles 47874addb5 Mixer/wscript: Check for presence of ladspa.h. 2013-03-09 20:41:55 -08:00
Jonathan Moore Liles 8d282617e6 Timeline: More locking fixes. Also, build peaks cache levels in threads launched by UI thread, instead of in the record diskthreads. 2013-03-01 17:07:30 -08:00
Jonathan Moore Liles 88b552ea00 Fix typo in README.build. 2013-03-01 17:05:32 -08:00
Jonathan Moore Liles 25f2a55ce0 Timeline: Change style of master record button. 2013-03-01 17:04:36 -08:00
Jonathan Moore Liles ea33310f33 Timeline: Fix button responsiveness on control sequence headers. 2013-02-25 17:53:09 -08:00
Jonathan Moore Liles c7787c8ad6 Timeline: Don't add cursor regions to sequence before setting their start and length. 2013-02-24 19:52:17 -08:00
Jonathan Moore Liles b83c70175d Remove some unnecessary NTK calls. 2013-02-22 17:25:22 -08:00
Jonathan Moore Liles 98c5c196d4 Timeline: Rework locking. 2013-02-22 17:18:52 -08:00
Jonathan Moore Liles a228920ac1 Fl_Flowpack: Fix mixer usage. 2013-02-21 18:19:44 -08:00
Jonathan Moore Liles e4d08afc68 Timeline: Cancel unresponsive disk_threads. 2013-02-18 23:00:48 -08:00
Jonathan Moore Liles 51379e2e51 Timeline: Tweak clock display. 2013-02-18 22:48:00 -08:00
Jonathan Moore Liles e4d0945bf9 wscript: Use gccdeps module. 2013-02-18 22:47:41 -08:00
Jonathan Moore Liles f41cf07188 Timeline: Add 'loop' and 'new take' buttons to transport group so that these settings are more obvious to the user. 2013-02-12 16:50:19 -08:00
Jonathan Moore Liles 85e225810f Fl_Flowpack: Improve layout. 2013-02-12 16:49:35 -08:00
Jonathan Moore Liles 4f4698a12c Nonlib: Add (some) support for opening sessions readonly. 2013-02-09 18:19:40 -08:00
Jonathan Moore Liles 3756dea1d6 Timeline: Lock ordering fixes. 2013-02-09 18:19:07 -08:00
Jonathan Moore Liles 0c5a46422a nsmd: Permit trailing slash in session root. 2013-02-07 20:45:19 -08:00
Jonathan Moore Liles 5fc5ce0cc0 Update ntk. 2013-02-04 22:41:34 -08:00
Jonathan Moore Liles c2bf264120 FL: Remove now unnecessary override of mousewheel behavior in Fl_Value_SliderX 2013-02-04 22:18:18 -08:00
Jonathan Moore Liles 94d55bd4e1 Timeline: Fix waveform offset drawing. 2012-12-15 18:45:56 -08:00
Jonathan Moore Liles 8a6772b6b9 Timeline: Fix bug in track right click handling. 2012-12-15 18:45:25 -08:00
Jonathan Moore Liles 569ba81f42 Mixer: Explicitly link to libdl. 2012-12-15 17:59:50 -08:00
Jonathan Moore Liles d455621543 Timeline: Suppress measure line drawing at wide zoom levels. 2012-12-11 22:13:18 -08:00
Jonathan Moore Liles a985cb3168 Timeline: Add menu button to track and control sequence headers. 2012-12-11 18:07:28 -08:00
Jonathan Moore Liles be495a6ded Timeline: Fix right-click context menu for control sequences. 2012-12-11 18:07:19 -08:00
Jonathan Moore Liles ed3b5355a4 Timeline: Commit omitted Fl_Sometimes_Pack 2012-12-11 13:16:32 -08:00
Jonathan Moore Liles 102670cb31 Timeline: Fix input bugs caused by track layout changes. 2012-12-10 22:58:18 -08:00
Jonathan Moore Liles 1ff528c8bf Update NTK. 2012-12-10 22:07:23 -08:00
Jonathan Moore Liles e1d706b5ed Timeline: Rework widget hierarchy for track display. Also, adjust timeline locking. 2012-12-10 21:47:44 -08:00
Jonathan Moore Liles 44f0aa7f35 FL/Fl_Blink_Button: Add option to ignore input. 2012-12-10 21:39:04 -08:00
Jonathan Moore Liles 964a1c53a3 wscript: Attempt to set proper compile/link flags for pthreads. 2012-12-10 21:38:31 -08:00
Jonathan Moore Liles bae6e38504 Timeline: Don't swap order of takes when reloading. 2012-12-10 21:37:29 -08:00
Jonathan Moore Liles e0b9c34f45 Timeline: Limit fequency of project loading progress updates.
This drastically improves project load times.
2012-12-10 21:36:58 -08:00
Jonathan Moore Liles 63d6da1f2f Session Manager: Change boxtype for session list. 2012-12-10 21:36:48 -08:00
Jonathan Moore Liles 1b4ec17964 Timeline: Draw control points bigger. 2012-12-10 21:36:41 -08:00
Jonathan Moore Liles dd6f448d72 Timeline/Track: fix track header resize behavior. 2012-12-01 16:53:57 -08:00
Jonathan Moore Liles e77dbca085 Timeline/Track: fix track header resize behavior. 2012-12-01 16:47:19 -08:00
Jonathan Moore Liles 998760bac6 Update NTK. 2012-12-01 16:18:01 -08:00
Jonathan Moore Liles 753ac2b56a Timeline: Redesign track header and add option to overlay control sequences.
Also, assign random color to individual control sequence (which the user may edit).
2012-12-01 16:14:01 -08:00
Jonathan Moore Liles f089d61ee2 Timeline/Track: Make 'takes' menu a submenu of the Track context menu.
Also, change the appearance  of rec/mute/solo buttons.
2012-11-29 23:40:28 -08:00
Jonathan Moore Liles 781ec66510 FL/Fl_Scalepack: Don't draw background when box is FL_NO_BOX. 2012-11-29 23:36:28 -08:00
Jonathan Moore Liles 5ffe3d44b3 Restore installation of .desktop files lost in WAF conversion. 2012-11-20 18:01:35 -08:00
Jonathan Moore Liles 73ebd3534b Timeline: Fix double free of Sequence_Widget::_label. 2012-11-20 10:05:18 -08:00
Jonathan Moore Liles 360f4f2481 FL: remove ntk-chtheme. 2012-11-19 01:00:39 -08:00
Jonathan Moore Liles 3b25772788 session-manager: Silence compiler warning. 2012-11-18 13:23:56 -08:00
Jonathan Moore Liles 06be33b0cc wscript: define _GNU_SOURCE. 2012-11-18 13:22:02 -08:00
Jonathan Moore Liles fc34b88b50 session-manager: Don't install 'send_osc' test program (which conflicts with a program of the same name in pyliblo) 2012-11-18 13:19:16 -08:00
Jonathan Moore Liles 96c14ea75a Update NTK. 2012-11-16 17:20:59 -08:00
Jonathan Moore Liles c54738a502 Sequencer: rework visual metronome. 2012-11-16 17:20:30 -08:00
Jonathan Moore Liles d97d1556d6 Fix wscripts for python3 2012-11-16 17:20:20 -08:00
Jonathan Moore Liles 47b82f0c9a Update NTK. 2012-11-16 01:31:27 -08:00
Jonathan Moore Liles 9c1eb8276d Timeline: Fix scope of panzoomer when timeline is shorter than window width. 2012-11-16 01:28:09 -08:00
Jonathan Moore Liles 173ab99186 FL/Fl_Blink_Button: Fix CPU wasting bug introduced in afd354. 2012-11-16 01:01:53 -08:00
Jonathan Moore Liles 1c7a64e266 Update build instructions. 2012-11-15 18:42:33 -08:00
Jonathan Moore Liles b04e1395cf Update NTK. 2012-11-15 18:38:54 -08:00
Jonathan Moore Liles 63bfc927c6 Remove some old build system lint. 2012-11-15 18:38:40 -08:00
Jonathan Moore Liles d86b71cb2c Replace custom build system with WAF. 2012-11-14 01:54:03 -08:00
Jonathan Moore Liles afd354a5b8 Clean up some compiler warnings 2012-11-05 23:51:32 -08:00
Jonathan Moore Liles 46d1c9c72a Timeline: Clean up use of Fl_Panzoomer. 2012-11-01 17:41:08 -07:00
Jonathan Moore Liles 7c8eb777e5 Timeline: Add an Fl_Tile so that user can resize the panzoomer. 2012-11-01 17:39:34 -07:00
Jonathan Moore Liles f124316c4b Timeline: s/hscroll/panzoomer 2012-11-01 17:39:21 -07:00
Jonathan Moore Liles 3d3a248fe5 Timeline: display track names in panzoomer. 2012-11-01 17:39:13 -07:00
Jonathan Moore Liles b50766b7da Timeline: Replace the scrollbars with a new Pan/zoom widget. 2012-11-01 03:35:04 -07:00
Jonathan Moore Liles 455fb7e1b9 scripts: Don't automatically run configure script on make. 2012-10-31 17:22:52 -07:00
Jonathan Moore Liles 9897655a9e scripts: default to non-interactive mode. 2012-10-31 12:54:53 -07:00
Jonathan Moore Liles 31cbec8a16 scripts: Fix master configure file for NTK changes. 2012-10-30 13:06:43 -07:00
Jonathan Moore Liles 12ed651e13 scripts: More changes to support using system installed NTK. Don't automatically assume user wants to checkout/build NTK submodule. 2012-10-30 11:52:36 -07:00
Jonathan Moore Liles 21ba2e35e5 scripts: Dynamically link to system-wide NTK, if found. 2012-10-30 09:11:13 -07:00
Jonathan Moore Liles 3c01a8a72a Update NTK. 2012-10-27 14:15:43 -07:00
Jonathan Moore Liles cf0c53b443 Timeline: Improve appearance of progress bars. 2012-10-27 14:12:09 -07:00
Jonathan Moore Liles ada46d215b Timeline: Make coloration of tracks optional. 2012-10-27 14:12:02 -07:00
Jonathan Moore Liles ee063e003b Timeline/ControlSequence: Simplify drawing. 2012-10-25 00:25:23 -07:00
Jonathan Moore Liles 03fdc46f3c Remove dates from documentation. Update CSS. 2012-10-23 23:20:13 -07:00
Jonathan Moore Liles a7d2f2f213 Timeline: Update most screenshots in documentation. 2012-10-23 22:56:01 -07:00
Jonathan Moore Liles 3054e7ecbf Timeline: Update documentation on cursors. 2012-10-23 22:55:58 -07:00
Jonathan Moore Liles 2f06f509d7 Timeline: Implement new cursor system.
This adds new cursor rulers for edit, punch and playback.  P1/P2 are now known as the
Edit Cursor. Multiple Punch Cursors may be defined. The playback cursor affects Home and End
controls. New options are available for looping over the playback cursor (even while recording)
and automatically creating new takes at start of recording (or loop).

The new cursor objects bump the project file version. Older versions of non-daw will be
unable to load new/edited projects.
2012-10-23 22:55:52 -07:00
Jonathan Moore Liles bcfa3953b1 Remove website documents from repository. 2012-10-23 22:55:43 -07:00
Jonathan Moore Liles ddb5d4f7ab FL/Fl_Text_Edit_Window: Don't die if initial text is NULL. 2012-10-23 20:31:42 -07:00
Jonathan Moore Liles cfcf4cf1fb Update NTK. 2012-10-05 15:48:54 -07:00
Jonathan Moore Liles 15a78bbfb5 Timeline: Don't die when a punch recording is started with no range defined. 2012-10-05 14:19:50 -07:00
Jonathan Moore Liles 2861509b52 Update repository paths in documentation. 2012-10-02 16:58:06 -07:00
Jonathan Moore Liles 5cc6136f9c NSM: update API document. 2012-09-23 18:57:06 -07:00
Jonathan Moore Liles 9cebe116d1 Update NTK. 2012-09-07 18:35:34 -07:00
Jonathan Moore Liles a6f43250ae NSM: Fix argument order for new GCC. 2012-09-07 18:34:32 -07:00
Jonathan Moore Liles 5f7a29219e Mixer: fix bug in makefile. 2012-08-07 17:45:55 -07:00
Jonathan Moore Liles c4b4f49575 Merge branch 'next' into master 2012-08-06 20:10:45 -07:00
Jonathan Moore Liles fd3d294b8a Update NTK submodule. 2012-08-06 20:05:50 -07:00
Jonathan Moore Liles 14d189c939 Update Makefile to automatically checkout NTK submodule and add README.build file. 2012-08-06 20:03:30 -07:00
Jonathan Moore Liles ee8764495f Mixer: Add --no-ui commandline option and non-mixer-noui executable symlink to permit running an instance of non-mixer without connecting to an X display. 2012-07-28 15:22:31 -07:00
Jonathan Moore Liles 3a999ecc86 Mixer: Fix segfault in module paste. 2012-07-21 16:31:55 -07:00
James Morris 15e095092c Small fix for the ladspa plugin module to multiple the port hint by sample rate to give frequency ports the correct value range. 2012-07-16 01:07:18 -07:00
Jonathan Moore Liles c53cb2e7fe Mixer: Fix -3db error in meter display. 2012-06-28 18:01:44 -07:00
Jonathan Moore Liles 89d26989f3 Mixer: Panner: Don't mangle line-style. 2012-06-28 00:38:41 -07:00
Jonathan Moore Liles f4dace9983 NSM: const fix in NSM proxy. 2012-06-24 11:48:11 -07:00
Jonathan Moore Liles 7f8de0710a Mixer: Fix divide by zero in DPM. 2012-06-23 21:49:21 -07:00
Jonathan Moore Liles be3c9c6412 Timeline: declick loop boundaries. 2012-06-22 21:13:05 -07:00
Jonathan Moore Liles ee2d86a012 Timeline: Tweak drawing of basic sequence region label. 2012-06-20 01:03:21 -07:00
Jonathan Moore Liles 870203b3dd Mixer: Update for NTK transparency. 2012-06-20 00:55:58 -07:00
Jonathan Moore Liles 81217a8722 Timeline: Display selection state of basic sequence points and sequence regions. 2012-06-18 21:31:23 -07:00
Jonathan Moore Liles 44a0279e4c Timeline: Just redraw the whole waveform when recording... 2012-06-18 21:27:59 -07:00
Jonathan Moore Liles a480a93ba4 Tweak Timeline<->Mixer discovery handshake. 2012-06-18 21:25:41 -07:00
Jonathan Moore Liles 8cddccf6a4 Timeline: Require rectangle or CTRL+Click to select sequence widgets. 2012-06-17 02:31:01 -07:00
Jonathan Moore Liles 3cc14df756 Timeline: Allow reordering of tracks. 2012-06-16 22:08:49 -07:00
Jonathan Moore Liles 6f993eeb10 nonlib: Always get the latest unjournaled state when saving. 2012-06-16 22:07:47 -07:00
Jonathan Moore Liles 13b6537ee4 NSM: Fix up configure and makefile. Also, clear some compiler warnings. 2012-06-16 19:46:29 -07:00
Jonathan Moore Liles 94367a990c Sequencer: Fix some NTK transparency issues. 2012-06-16 18:59:26 -07:00
Jonathan Moore Liles 553db45e8b NSM: Fix uninitialized value error with client labels. 2012-06-16 17:51:02 -07:00
Jonathan Moore Liles 1f9c2bbb6a Timeline: Fix thread synchronization issues during recording. 2012-06-15 18:53:40 -07:00
Jonathan Moore Liles ab8f23f15d Timeline: Simplify drawing of crossfades by using NTK transparency. 2012-06-13 23:04:42 -07:00
Jonathan Moore Liles 7107cbbf4c Timeline: Add CTRL+L shortcut to force redraw. 2012-06-13 21:04:31 -07:00
Jonathan Moore Liles deb08d4b14 Timeline: Fix disappearing waveforms. 2012-06-13 21:02:25 -07:00
Jonathan Moore Liles a27d0b1718 Timeline: Add basic punch in/out support (may require latency compensation). 2012-06-13 18:28:49 -07:00
Jonathan Moore Liles e968d8190f Timeline: Fix waveform drawing during record and cumulative error in looped region drawing. Also, avoid redrawing already displayed parts of waveforms while recording. 2012-06-12 20:53:21 -07:00
Jonathan Moore Liles f04c36cae9 Timeline: Prevent segfault at shut down due to OSC output thread left running. 2012-06-12 20:39:33 -07:00
Jonathan Moore Liles 989b6f0e4b Timeline: Avoid uninitialized read when drawing waveforms. 2012-06-12 20:39:33 -07:00
Jonathan Moore Liles e219e6766e Timeline: Fix uninitialized value in Control_Sequence. 2012-06-12 20:37:15 -07:00
Jonathan Moore Liles af3698bebc Timeline: Fix sign error in region panning. 2012-06-09 19:46:08 -07:00
Jonathan Moore Liles 1d59665702 Timeline: Eliminate some unnecessary repeated drawing of measure lines. 2012-06-07 00:29:54 -07:00
Jonathan Moore Liles ee5e4958d3 Mixer: Use LDRF_CFLAGS in makefile. 2012-06-06 23:50:02 -07:00
Jonathan Moore Liles 65f33096c2 Timeline: Avoid more complete redraws. 2012-06-06 23:49:18 -07:00
Jonathan Moore Liles 183764e767 Timeline: Always draw waveforms using theme foreground color. 2012-06-06 23:45:07 -07:00
Jonathan Moore Liles f3505a84de Timeline: Simplify fade application/avoid cast to long type. 2012-06-06 23:43:36 -07:00
Jonathan Moore Liles c6f6c57c05 Timeline: Tweak label drawing of sequence widgets. 2012-06-05 19:00:48 -07:00
Jonathan Moore Liles 275878395f Revert "Indicate loop point by modifying waveform color." 2012-06-05 17:31:23 -07:00
Jonathan Moore Liles a5588f7ad4 Timeline: Prevent status info update from causing complete redraw due to new NTK transparency logic. 2012-06-05 17:31:18 -07:00
fundamental ab98b66f44 The changes needed to get "nsm.h" to work with C (or C++ where stdio.h has not been included) 2012-06-05 17:31:09 -07:00
Jonathan Moore Liles 8eef38f0cc Timeline: Fix graphics corruption. Also, indicate loop point by modifying waveform color. 2012-06-05 02:23:42 -07:00
Jonathan Moore Liles c0375e614a Timeline: Fix null pointer derefrence when copying sequence points. 2012-06-04 23:00:13 -07:00
Jonathan Moore Liles 2af46a1a0c Timeline: Fix locking behavior of Control Sequences. 2012-06-04 22:59:33 -07:00
Jonathan Moore Liles d249bb9bbd OSC: Properly encode/decode special characters in osc paths. 2012-06-04 22:58:57 -07:00
Jonathan Moore Liles 0fba0747fc OSC: Fix bug that wiped out Signal paths. 2012-06-04 22:57:58 -07:00
Jonathan Moore Liles e5e6925c2c Mixer: Fix OSC path naming for multiple instances of the same LADSPA plugin. 2012-06-04 22:55:26 -07:00
Jonathan Moore Liles 7217266f6b Timeline: Tweak measure line drawing. 2012-06-04 17:25:54 -07:00
Jonathan Moore Liles 72a0c0eb3e Timeline: Tweak fade drawing. 2012-06-04 17:25:21 -07:00
Jonathan Moore Liles 3cca1e48a5 Timeline: Add feature to adjust region gain/scale with mouse. 2012-06-04 17:24:57 -07:00
Jonathan Moore Liles e5875fa072 Fix runaway processing in peakfile generation. 2012-06-04 17:14:37 -07:00
Jonathan Moore Liles 3e73817155 Fix some clang warnings. 2012-05-30 22:58:35 -07:00
Jonathan Moore Liles a8a5638f6a Timeline: Add missing include of unistd.h. 2012-05-30 21:22:48 -07:00
Jonathan Moore Liles 66d7701655 Sequencer: Don't skip first note of repeating patterns in Phrase mode. 2012-05-29 23:33:10 -07:00
Jonathan Moore Liles 8df6acd540 FL: Clean up enter key press behavior of Fl_Sometimes_Input 2012-05-27 20:34:49 -07:00
Jonathan Moore Liles b1cbd4faa6 Timeline: Improve the appearance of measure lines. 2012-05-27 19:53:02 -07:00
Jonathan Moore Liles d7fc792839 Timeline: Improve the appearance of sequence widget labels. 2012-05-26 20:12:23 -07:00
Jonathan Moore Liles 5eb890d653 Fix problem performing initial build. 2012-05-22 17:57:29 -07:00
Jonathan Moore Liles 6ae771b297 Timeline: Transition to C NSM API header instead of C++ version. 2012-05-21 22:28:12 -07:00
Jonathan Moore Liles fa195cf817 Add C only NSM API header. 2012-05-21 22:28:04 -07:00
Jonathan Moore Liles 9b669e42e0 Fix NTK Makefile. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles fbef266be3 Update NTK submodule. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles a465c17e2a Timeline/Track: Change button appearance. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles c370130d2b Timeline: Avoid drawing fade curves when clipped or 0 width. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles fa5d739ac7 Timeline: Make entire window an Fl_Overlay_Window instead of using a subwindow for timeline. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles c9a7e56b80 Sequencer: Fix layering of controls. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles 0cc0bf2f00 Sequencer: Eliminate some unnecessary drawing. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles 73d2c2d396 Timeline: Use simpler boxtypes for audio regions. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles 0904809a05 FL: Fix configure. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles d23307ca53 Sequencer: Use double for ticks_t
This helps dealing with fractional errors resulting in dropped notes when running with
very small buffer sizes.
2012-05-21 21:23:02 -07:00
Jonathan Moore Liles 2c6b6b1a75 FLTK->NTK
FLTK fork gets Cairo and is renamed to NTK.

Themes are moved from FL into NTK core.

Fl_Arc_Dial is moved into NTK core.
2012-05-21 21:23:02 -07:00
Jonathan Moore Liles a588f4ae96 Timeline: Make display of box around audio regions optional. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles f5240cb2f4 Mixer: Improve panner drawing. 2012-05-21 21:23:02 -07:00
Jonathan Moore Liles 363f2f04bc Mixer: Allow controller modules to be removed. 2012-05-20 15:09:45 -07:00
Jonathan Moore Liles ac30a5a4e2 OSC: Fix some uninitialized values. 2012-05-03 22:57:54 -07:00
Jonathan Moore Liles f279f49b1e NSM: Don't accept an open command while one is still pending. 2012-05-02 18:38:11 -07:00
Jonathan Moore Liles f816742b65 OSC: Don't fail if peer scan callback is not set! 2012-04-27 10:17:37 -07:00
Jonathan Moore Liles 16a4c0f51d Mixer: Fix receiving of direct OSC messages. 2012-04-24 13:16:31 -07:00
Jonathan Moore Liles 9f28f7a1a8 Move -L flags after the object name in linker commands. 2012-04-24 09:44:56 -07:00
Jonathan Moore Liles be79c69161 Add a master configure script. 2012-04-16 21:29:34 -07:00
Jonathan Moore Liles da225ff64a nonlib: Remove sigc++ dependencey from OSC::Endpoint.
This also removes sigc++ as a dependency for mixer and timeline.
2012-04-16 21:29:34 -07:00
Jonathan Moore Liles c21e7b1381 Sequencer: Replace 'Circle' note shape with 'Box'. 2012-04-15 20:42:57 -07:00
Jonathan Moore Liles 272e87cbf8 NSM: Don't clear the 'stopped' status of dumb clients upon save. 2012-04-15 16:56:03 -07:00
Jonathan Moore Liles ae5879a20e NSM: Don't allow 'added' clients to replace stopped clients. 2012-04-15 16:55:32 -07:00
Jonathan Moore Liles 57ac27ecac Change the appearance of the "SM" indicator in mixer, daw, sequencer. Tweak GUIs. 2012-04-14 14:11:58 -07:00
Jonathan Moore Liles 61addce803 Add missing includes for unistd.h 2012-04-13 15:23:52 -07:00
Jonathan Moore Liles e662a7623b Add missing includes for unistd.h 2012-04-13 15:23:40 -07:00
Jonathan Moore Liles 5e63b25504 FL: Reset boxtypes before activating new theme. 2012-04-11 22:56:25 -07:00
Jonathan Moore Liles 25a0b8afc6 FL: Mute colors in Clean theme. 2012-04-11 22:48:47 -07:00
Jonathan Moore Liles 12532e1fbc NSM: Redraw Fl_Tree as sessions are added. 2012-04-11 01:15:48 -07:00
Jonathan Moore Liles 89c76fe0c9 nsm-proxy: Use common theme settings. 2012-04-11 00:56:45 -07:00
Jonathan Moore Liles 16f8956f8d nsm-proxy: Don't die if arguments are missing. 2012-04-11 00:49:58 -07:00
Jonathan Moore Liles 679e33d729 NSM: Automatically start nsm-proxy if user attempts to add a client with arguments. 2012-04-11 00:49:58 -07:00
Jonathan Moore Liles 11a0d40e86 NSM: Update documentation. 2012-04-11 00:49:58 -07:00
Jonathan Moore Liles d34ede74a6 NSM: Fix Fl_Tree selection. 2012-04-11 00:49:58 -07:00
Jonathan Moore Liles ffe5299da4 nsm-proxy: Save on 'start'. 2012-04-11 00:49:58 -07:00
Jonathan Moore Liles a66c041050 NSM: Use Fl_Tree for session list. 2012-04-11 00:49:57 -07:00
Jonathan Moore Liles 1d8d8b0548 NSM: Add stop/kill button for each client to GUI. 2012-04-11 00:49:57 -07:00
Jonathan Moore Liles 468c969162 nsm-proxy: Add more instructions to GUI. 2012-04-11 00:49:57 -07:00
Jonathan Moore Liles b48ca7c44b NSM: Implement nsm-proxy, which permits the use of 'dumb' clients with commandline arguments (which may also respond to Unix signals by saving their state). 2012-04-11 00:49:57 -07:00
Jonathan Moore Liles 885ef30a88 NSM: Add support for clients with optional GUIs. 2012-04-11 00:49:57 -07:00
Jonathan Moore Liles fdcf74ddbe Replace crappy Fl::scheme() thing with a more useful theme implementation in Fl_Theme and Fl_Color_Sheme classes.
Theme settings are now common between all Non-* programs.

Also adds a new 'Clean' theme.
2012-04-10 23:59:12 -07:00
Jonathan Moore Liles e424182dce Timeline: Fix false-positive incompatibility with old project files. 2012-04-04 18:59:34 -07:00
Jonathan Moore Liles eda11f56fe Timeline: Symlink to drag'n'drop'd files from the sources/ directory rather than including the absolute path in the journal. 2012-04-02 21:30:56 -07:00
Jonathan Moore Liles 9896970ed0 Timeline: Don't do FL_DAMAGE_SCROLL unless the viewport has actually moved... 2012-04-01 18:49:16 -07:00
Jonathan Moore Liles 9667f98995 Timeline: Don't fork to generate peak mipmaps, do it in the capture thread. Also, clean up related concurrency issues. 2012-04-01 18:27:27 -07:00
Jonathan Moore Liles f941d7c923 Clean up DESTDIR install behavior. 2012-03-30 17:24:22 -07:00
Jonathan Moore Liles 338e66c759 Cleanup locking for OSC playback. 2012-03-29 22:08:45 -07:00
Jonathan Moore Liles 792e6f280a Jackpatch: Use jack port registration callbacks instead of polling the port list. 2012-03-27 18:21:00 -07:00
Jonathan Moore Liles 95175c3e2b Sequencer: Save and restore settings from View menu. 2012-03-25 16:48:16 -07:00
Jonathan Moore Liles 713f3ef476 Sequencer: Clean up GUI. 2012-03-25 16:30:30 -07:00
Jonathan Moore Liles 91c8dd905f Jackpatch: Use jack port registration callbacks instead of polling the port list. 2012-03-25 15:05:17 -07:00
Jonathan Moore Liles 0a963f5c8a Timeline: Add keybindings for split region at mouse and crop region to range. 2012-03-18 13:21:57 -07:00
Jonathan Moore Liles bc6f94e769 Timeline: Use solid lines for drawing measure lines--they're way faster than dashed. 2012-03-17 21:16:02 -07:00
Nedko Arnaudov 0c9ad88b4f fix non-sequencer doc installation 2012-03-14 19:02:36 -07:00
Nedko Arnaudov 54c74d3de7 gitignore generated files 2012-03-14 19:02:32 -07:00
Nedko Arnaudov fa504e062d Remove broken open_url() hack.
The embedded fltk version works fine.
2012-03-14 19:02:28 -07:00
Jonathan Moore Liles d4900e10e5 Sequencer: Fix invalid queue state for duplicated patterns. 2012-03-14 18:28:35 -07:00
Jonathan Moore Liles 6673f7057a Mixer: Listen for OSC messages in a thread instead of polling. 2012-03-13 22:41:54 -07:00
Jonathan Moore Liles c74cd04bab Sequencer: Try to avoid excessive double buffer flips when the transport is rolling. 2012-03-13 19:50:17 -07:00
Jonathan Moore Liles e1495ba425 Update FLTK head. 2012-03-13 18:49:28 -07:00
Jonathan Moore Liles ced664baf2 FLTK: Disable XDBE, as it's generally slower than using pixmaps (because with a pixmap we can do partial copies) 2012-03-13 18:48:18 -07:00
Jonathan Moore Liles ca3076d2ec Timeline: Avoid triggering excessive redraws. 2012-03-13 18:47:53 -07:00
Jonathan Moore Liles a988b18062 Update FLTK. 2012-03-09 21:53:44 -08:00
Jonathan Moore Liles ce6a7f3ec3 Update FLTK submodule. 2012-03-09 13:29:05 -08:00
Jonathan Moore Liles 5a95b1a18f Add some more omitted symlinks. 2012-03-07 18:34:33 -08:00
Jonathan Moore Liles 9db488173b Don't include fltk-config in global sanity check. 2012-03-07 18:29:30 -08:00
Jonathan Moore Liles 376f863833 More build system tweaks. 2012-03-07 18:22:37 -08:00
Jonathan Moore Liles ed908d4bcb Sequencer: Add omitted makefile. 2012-03-07 18:03:37 -08:00
Jonathan Moore Liles 11c9a02687 Add some omitted symlinks required for the build. 2012-03-07 17:55:59 -08:00
Jonathan Moore Liles 2e80994cf5 More tweaking of build for static FLTK. 2012-03-06 20:01:37 -08:00
Jonathan Moore Liles 5336880bd4 Further tweak build system to work with private version of FLTK. 2012-03-06 17:38:52 -08:00
Jonathan Moore Liles 9a80f4c3f3 Sequencer: Don't leak from the output buffer when suppressing duplicate noteon/offs. 2012-03-06 17:33:32 -08:00
Jonathan Moore Liles 0f86ee6882 Use the same value for Fl::visual() everywhere. 2012-03-06 16:39:44 -08:00
Jonathan Moore Liles 0abfd44031 Sequencer: Fix signal handlers. 2012-03-06 16:39:36 -08:00
Jonathan Moore Liles e81270d74e Timeline: Workaround bug in FLTK 1.3 that prevented Control Sequences from displaying. 2012-03-06 00:42:51 -08:00
Jonathan Moore Liles 6a0b2d2069 Timeline: When waiting for peaks, only check again every 500ms. 2012-03-05 21:18:36 -08:00
Jonathan Moore Liles ad3d826493 Timeline: Account for new clipping behavior in FLTK 1.3 when drawing in the overlay plane. 2012-03-05 21:15:38 -08:00
Jonathan Moore Liles dd5aa2cdcf Add known-working FLTK revision as a submodule. Link to it statically. 2012-03-05 19:06:13 -08:00
Jonathan Moore Liles 6f19499a3c Add sequencer to master Makefile. 2012-03-04 22:52:43 -08:00
Jonathan Moore Liles 5672517caa Sequencer: Update appearance, begin to use FL/ helpers. 2012-03-04 22:45:40 -08:00
Jonathan Moore Liles ca64e0fef8 Bring Non-Sequencer's build system in line with Non-DAW and Non-Mixer. 2012-03-04 22:18:11 -08:00
Jonathan Moore Liles d4bacf444a Update from master. 2012-03-04 21:44:48 -08:00
Jonathan Moore Liles 670400cbf9 Handle SIGHUP. 2012-03-04 19:12:32 -08:00
Jonathan Moore Liles 92dfbbc6f6 Timeline: Clean up commandline handling. 2012-03-04 19:01:07 -08:00
Jonathan Moore Liles 2d5072c7d7 Mixer: Improve commandline handling. 2012-03-04 18:57:00 -08:00
Jonathan Moore Liles 676a98c17e Mixer: Implement NSM dirtiness notification. 2012-03-04 18:22:32 -08:00
Jonathan Moore Liles d67ee6605a NSM: Don't die when user clicks blank area of the session list. 2012-03-04 13:40:06 -08:00
Jonathan Moore Liles e4e546b849 Timeline: Add omitted header file change. 2012-03-04 12:55:16 -08:00
Jonathan Moore Liles ae6b78cf89 Timeline: Maybe be more accurate in reporting used disk space. 2012-03-04 03:50:52 -08:00
Jonathan Moore Liles 4f472c2a8e scripts: Fix alignment in compile output. 2012-03-04 00:16:16 -08:00
Jonathan Moore Liles f3b66982b7 scripts: Add test for unresolvable hostname to build. 2012-03-04 00:08:07 -08:00
Jonathan Moore Liles e0e593277f NSM: Make GUI a little prettier than the FLTK defaults. 2012-03-03 23:54:41 -08:00
Jonathan Moore Liles d295593e55 Fix tpyo in mkaefile. 2012-03-03 23:15:23 -08:00
Jonathan Moore Liles 0e5db66f16 Use one master makefile instead of having a different one per project. 2012-03-03 20:13:59 -08:00
Jonathan Moore Liles 7495731df6 Merge Non Sequencer history into the same repository as Non-Mixer and Non-DAW. 2012-03-03 19:47:36 -08:00
Jonathan Moore Liles a320232b66 Bring Non-Sequencer into the same repository as Non-DAW and Non-Mixer. 2012-03-03 19:26:58 -08:00
Jonathan Moore Liles 46bb1bf702 Add more flare to drawing. Also, default to square shape for notes. 2012-03-03 18:30:46 -08:00
Jonathan Moore Liles 8e01aec002 Actually do what the previous commit only claimed to. 2012-03-03 17:52:40 -08:00
Jonathan Moore Liles a93f620eb0 Oops. Don't forget to initialize JACK when not connected to NSM. 2012-03-03 17:48:08 -08:00
Jonathan Moore Liles ba45c07b04 Mixer: Restore display of module name in Module Parameter Editor. 2012-03-03 13:21:18 -08:00
Jonathan Moore Liles 60de871511 NSM: Clean up compiler warnings. 2012-03-03 12:40:25 -08:00
Jonathan Moore Liles 15cdc92125 Oops. Forgot to update NSM API version. 2012-03-03 11:17:42 -08:00
Jonathan Moore Liles 82b2c5e565 Oops. Forgot to update NSM API versions. 2012-03-03 11:16:20 -08:00
Jonathan Moore Liles 1baaed2e5d Oops. Remove mention of LASH (tsk, tsk) from overview. 2012-03-03 02:55:45 -08:00
Jonathan Moore Liles e4b42dc812 Bump versions. 2012-03-03 00:12:08 -08:00
Jonathan Moore Liles 3f6faa0754 Update Non-DAW screenshot in documentation. 2012-03-03 00:12:08 -08:00
Jonathan Moore Liles bb75847ac1 Mixer: Implement mixer Strip import/export 2012-03-02 23:16:16 -08:00
Jonathan Moore Liles 044414c4c2 Mixer: Try to fix some weirdness with Controller Module knob display. 2012-03-02 23:16:16 -08:00
Jonathan Moore Liles 9f6a2fd022 Timeline: Warn about buggy FLTK version. 2012-03-02 18:06:03 -08:00
Jonathan Moore Liles df0a9c4267 Mixer: Make slider types optional too. 2012-03-02 18:04:16 -08:00
Jonathan Moore Liles ccc93d2388 Timeline: Work around bug in FLTK 1.3 when drawing a string containing only symbols. 2012-03-02 00:53:10 -08:00
Jonathan Moore Liles 5fbdd940be Mixer: Try harder to avoid drawing meters more than necessary. 2012-03-02 00:18:11 -08:00
Jonathan Moore Liles 32bd29a28b GUI tweaks. 2012-03-02 00:18:11 -08:00
Jonathan Moore Liles 26fa9eba3b Mixer: Add new 'plastic' knob type. Make knob type to display configurable. 2012-03-02 00:18:05 -08:00
Jonathan Moore Liles 9bb9a91b22 Add 'gleam' inspired boxtypes to replace the ones in the gtk+ theme. Also, tweak crystal boxtypes. 2012-03-01 20:23:23 -08:00
Jonathan Moore Liles 6cd4dd6ea0 Add notes to packagers. 2012-02-29 04:00:47 -08:00
Jonathan Moore Liles 1c1817fc41 NSM: Update documentation. 2012-02-29 03:46:34 -08:00
Jonathan Moore Liles c1a7848670 NSM: Minor cleanup. 2012-02-29 03:46:22 -08:00
Jonathan Moore Liles 677d4976b2 NSM: For lack of a better place to put it, add 'jackpatch' program to the repository. 2012-02-28 23:02:50 -08:00
Jonathan Moore Liles 46eb00f8d6 Use getopt_long for processing command line arguments to Non-DAW and Non-Mixer. 2012-02-28 22:22:03 -08:00
Jonathan Moore Liles 3a5c330e34 Everybody gets new icons! Also, .desktop files. 2012-02-28 21:25:37 -08:00
Jonathan Moore Liles 7590c52c76 scripts: Allow suggested packages. 2012-02-28 21:20:05 -08:00
Jonathan Moore Liles 55c83cf4ec Mixer: Update documentation. 2012-02-28 03:09:08 -08:00
Jonathan Moore Liles d8c32376e1 Mixer: Document spatialization control for Ambisonics plugins. 2012-02-28 03:09:08 -08:00
Jonathan Moore Liles 9de99e2380 Update documentation. 2012-02-28 03:09:08 -08:00
Jonathan Moore Liles 388796a1c4 NSM: Time client responses. 2012-02-27 20:28:58 -08:00
Jonathan Moore Liles 250b7db644 Cleanup compiler warnings. 2012-02-26 20:19:46 -08:00
Jonathan Moore Liles 2f67b1bee4 OSC: Fix signal creation notification. 2012-02-26 18:47:07 -08:00
Jonathan Moore Liles 1cdc62416d NSM: Don't forget to inform GUI of the removal of stopped clients when closing a session. 2012-02-26 18:09:04 -08:00
Jonathan Moore Liles cdcc61d75b NSM: Minor GUI enhancements. 2012-02-26 16:59:51 -08:00
Jonathan Moore Liles e8cc16eff1 NSM: Add session locking to nsmd. 2012-02-26 16:39:50 -08:00
Jonathan Moore Liles 6e0aa57083 NSM: Add --detach option to nsmd. 2012-02-26 16:11:59 -08:00
Jonathan Moore Liles dafc476222 Big OSC signal cleanups 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles cbf5fefa7b Add libsigc++ as a dependency. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles a48a739db2 OSC: Improvements to signal routing. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles edefd1126f OSC: Signal cleanups. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles 6151e0620f Timeline: Clock cleanup. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles 62c8490c17 Timeline: Run OSC output in a dedicated thread. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles 5a0527c623 OSC: Save and restore OSC signal connections outgoing from Non-DAW. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles b82774dcf3 Timeline: Add interpolation mode choice of Linear and None to Control Sequences. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles 5aff30fef6 Timeline/Track: Avoid unnecessary drawing of occluded track box. 2012-02-26 01:05:04 -08:00
Jonathan Moore Liles f769375a7a NSM: Clients must use the same protocol (UDP,TCP) as NSM server. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles b2affcc5d5 Don't poll NSM as frequently. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 080100d3b4 Mixer: Fix an invalid read on strip destruction due to a missing lock. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 219c3b1e9b FL: Fix an uninitialized value. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles bc216741f4 Mixer: Don't die when not running under NSM. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles d93a2de86b Timeline: Don't die when not running under NSM. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles f15523ea9e NSM: Mutli-server fixes. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 7cfa1ec38a OSC: Implement generic signal model with path auto discovery through NSM. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles dca72cb455 Give Non-DAW the ability to detect Non-Mixer OSC servers via NSM broadcast handshake. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 0f688c99ae OSC: Process all available events in one wait cycle. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 038a6cc712 NSM: Support sessions spread across multiple servers.
One Session Manager GUI instance connects to and controls multiple server
instances (specified by multiple --nsm-url arguments on the commandline).

The servers may be on different physical machines, or on the same machine
(using different values for --session-root).
2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 69c11d45a1 NSM: Fix logic when waiting for clients to load. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 58a4cd1537 NSM: Update documentation. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles b9f297bb20 NSM: Detect death of clients whose processes are not children of NSMD. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles d5ed4e8ada NSM: Process more than one message per wait cycle! 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 31f0d6b311 Mixer: Destroy instances of Controller_Module when the connected modules are removed. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles e9804033ab Mixer: Fix GUI update on Controller_Modules being controlled via JACK CV. 2012-02-26 01:05:03 -08:00
Jonathan Moore Liles 4a22d675e2 Implement the Non-Session-Manager (NSM) 2012-02-26 01:05:02 -08:00
Jonathan Moore Liles cff2c15583 Mixer: Fix mirroring and OSC automation of Spatialization controls. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles 0590687857 Mixer: Don't allow ',' in OSC paths. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles 100b23d1fb Mixer: Fix behavior issues of Toggle controls. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles a11961f9b6 Mixer: Cleanup OSC value scaling/clamping behavior. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles 9ff41fe8fa Mixer: Display realtime parameter changes (initiated via automation or GUI) in Module_Parameter_Editor 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles b852f977ae Mixer: Add OSC section to documentation. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles f3b9b0c00d Mixer: Update OSC paths upon chain/strip name change. 2012-02-26 01:04:40 -08:00
Jonathan Moore Liles d2a3afb810 Mixer: Don't create/destroy OSC ports more often than necessary. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 5027e65d13 Mixer: Default OSC paths are CV. Use /unscaled for exact input. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 812fad8567 Mixer: Feedback control values to OSC senders. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 2d7279a931 OSC: Don't swallow up all parameterless messages. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 18a1429b22 Mixer: Create unique OSC paths even when multiple instances of a module/plugin with the same name exist in a chain. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles f9bbdb20c9 Mixer: Make OSC ports a property of Module::Port, not Controller_Module. Therefore, all plugin parameters will be accessible via OSC. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 6d7059777b Mixer: OSC enhancements. Responsd to both exact (range limited) and Control Voltage (0.0-1.0 on */cv) input. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles f864159b51 Mixer: Ensure that JACK_Module passes chain_name_changed event to its Controllers. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles fe4faaca1b Mixer: Allow clients to query for available OSC paths. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles d959b54f6a Mixer: Add commandline option for specifying the OSC port to use. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 53f077ee88 Mixer: Add basic OSC control to Controller_Module. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles a91bc7566f Mixer: Add basic OSC support. 2012-02-26 01:04:39 -08:00
Jonathan Moore Liles 93dd9870ae Don't rely on 'Fl' symlink which only exists on Debian. 2012-02-25 18:02:06 -08:00
Jonathan Moore Liles e5a8e0af48 Really. I do. 2012-02-20 02:50:19 -08:00
Jonathan Moore Liles 3b317f618c Some distributions put --as-needed in pkg-config and fltk-config results. *See you in /dev/null*
Really. I mean it.
2012-02-20 02:37:04 -08:00
Jonathan Moore Liles 9d253909f9 Some distributions put --as-needed in pkg-config and fltk-config results. *See you in /dev/null* 2012-02-20 02:27:48 -08:00
Jonathan Moore Liles 1d25063d11 Mixer: Handle WM main window close event just like Quit menu comment (confirm save). 2012-02-10 02:14:01 -08:00
Jonathan Moore Liles a8888d40b4 Mixer: Don't segfault during teardown upon WM initiated exit. 2012-02-08 15:39:22 -08:00
Jonathan Moore Liles 72073030a7 Mixer: Don't segfault when removing a module. 2012-02-07 19:45:48 -08:00
Jonathan Moore Liles 36194c955a Fix build being broken by some include defining a preprocessor macro for 'None' 2012-02-04 21:31:01 -08:00
Jonathan Moore Liles 66cd761f44 Mixer: Explicitly link to libdl. 2011-05-30 21:07:33 -07:00
Jonathan Moore Liles dea3ae913b Fix 64-bit bug in peakfile handling.
Use 'packed' attribute on structs used to represent individual peaks and peak headers.
This is a quick, if not ideal, solution.

Broken peakfiles generated on 64-bit platforms must be deleted!
2010-03-11 01:12:53 -06:00
Jonathan Moore Liles 9f87bbd020 Timeline: Fix 64-bit bug in interactive region trimming. 2010-03-11 00:04:18 -06:00
Jonathan Moore Liles fb8c9414a0 Mixer: Fix callback delivery by Controller Module. 2010-02-27 12:55:25 -06:00
Jonathan Moore Liles a7902200e8 Mixer: Raise (arbitrary) maximum number of channels of JACK module from 6 to 16. 2010-02-27 12:39:18 -06:00
Jonathan Moore Liles 0f0933f6d0 Mixer/Module_Parameter_Edtior: Silence compiler warnings. 2010-02-24 18:41:01 -06:00
Jonathan Moore Liles c7ae81f035 Mixer/Module_Parameter_Editor: Don't point widow label at stack allocation. 2010-02-24 18:40:34 -06:00
Jonathan Moore Liles 6ac4106a6c Make spatialization mode of controller_module more robust. 2010-02-24 17:25:56 -06:00
Jonathan Moore Liles 93a6d878f2 Mixer/Panner: Fix azimuth assignment. 2010-02-24 09:06:40 -06:00
Jonathan Moore Liles fc31233d70 Mixer: Cleanup. 2010-02-24 09:06:11 -06:00
Jonathan Moore Liles 4a97f3dcb9 Mixer: Auto-connect spatializer controls to spatialization plugins. 2010-02-24 09:05:46 -06:00
Jonathan Moore Liles f770cede45 Mixer/Mixer: Cleanup. 2010-02-24 09:00:14 -06:00
Jonathan Moore Liles ee705fffa3 FL/Fl_Scalepack: Give scalepack the ability contain a resizable() child. 2010-02-24 08:58:47 -06:00
Jonathan Moore Liles 82583365f6 Mixer: Fix azimuth/elevation reporting. Load current values in Module_Parameter_Editor. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles d12bdc27a4 Mixer: Further improve the appearance of the Panner widget. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles 57937f2eb2 Module Parameter Editor: Don't use local allocation to store label. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles bb8193cd20 Mixer/Panner: Vary width of latitude lines. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles f4ded55c78 Mixer/Module_Parameter_Editor: Automatically show panner control for module parameter pairs named Azimuth and Elevation. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles 63c4296d7b Mixer: Report azimuth and elevation of panner points. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles 1fa23f1a76 Mixer: Improve spatializer appearance. 2010-02-17 18:14:05 -06:00
Jonathan Moore Liles 474ad167ed Mixer: Save/load the control mode status of the gain controller as part of the mixer strip's state. 2010-02-17 18:01:17 -06:00
Jonathan Moore Liles 65095d106d Move non-daw scripts into timeline/ tree. 2010-02-07 19:27:42 -06:00
Jonathan Moore Liles 80278aa78a FL: Get rid of unnecessary call to clip_children().
The idea being to restore compatibility with FLTK 1.1.7...
2010-02-06 11:23:21 -06:00
Jonathan Moore Liles d5b169118e Mixer: Destroy a module's parameter editor window when the module itself is destroyed. 2010-02-05 12:43:32 -06:00
Jonathan Moore Liles 0b0fb9ad87 Mixer: Don't die if user picks a submenu node in module context menu. 2010-02-04 13:05:25 -06:00
Jonathan Moore Liles 6015dc164a Mixer: Fix automatic row layout logic. 2010-02-04 07:45:56 -06:00
Jonathan Moore Liles 2f74b4dd02 Mixer: Set minimum size for main window. 2010-02-04 07:45:30 -06:00
Jonathan Moore Liles 178becd88c FL: Clip drawing of value of FL_Sometimes_Input when in non-input mode. 2010-02-03 19:54:59 -06:00
Jonathan Moore Liles 7a702eefb8 Fix a mismerge that caused meter indicators not to be updated. 2010-02-02 17:55:58 -06:00
Jonathan Moore Liles 83e51b2f20 Fix another 64-bit bug in Module insertion. 2010-02-02 07:59:22 -06:00
Jonathan Moore Liles 1febc10186 Fix a 64-bit bug in LADSPAInfo. 2010-02-02 07:59:16 -06:00
Jonathan Moore Liles 9e8a4b6fa3 Mixer: Don't use Fl_Group::clip_children(), which was only made public in FLTK 1.1.10. 2010-02-02 01:13:32 -06:00
Jonathan Moore Liles 76d9f480ec Last minute documentation updates. 2010-02-01 23:38:47 -06:00
Jonathan Moore Liles 1bd1324a25 FL: Make About_Dialog more dynamic. 2010-02-01 21:54:09 -06:00
Jonathan Moore Liles 08b3bae9c8 Improve logo for Non-Mixer. 2010-02-01 21:21:26 -06:00
Jonathan Moore Liles f480d0441a New logo for Non-DAW. 2010-02-01 20:38:10 -06:00
Jonathan Moore Liles 4cf327e1a7 Tweak build system. 2010-02-01 03:55:10 -06:00
Jonathan Moore Liles 8c891962c2 Bump version. 2010-02-01 02:35:12 -06:00
Jonathan Moore Liles f7316a2941 Fl_Packscroller: Don't eat unwanted FL_PUSH events. 2010-02-01 02:35:12 -06:00
Jonathan Moore Liles ba9e3bb1eb Mixer: Don't show module context menu for Meter_Indicator_Module. 2010-02-01 02:27:42 -06:00
Jonathan Moore Liles 29327f8a02 Timeline: Hide seek blinker, which may not be particularly useful. 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles 906872c79b Massively reoganize tree. 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles c713db6f34 Mixer: Clean up some compiler warnings. 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles 684983e19d Prefix main window titles with "Non DAW : " 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles 609a7e02ff Mixer: Support specifying an instance name on the command line (--instance) 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles ac3222e576 Update mixer screenshots. 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles f6554e9e4a Mixer: Fix "Help" menu item. 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles 0d497243af Mixer: Don't show label for Meter module... 2010-02-01 02:26:42 -06:00
Jonathan Moore Liles 5fecc4b673 Mixer: Warn if user attempts to quit without saving. 2010-02-01 02:26:39 -06:00
Jonathan Moore Liles 237861db95 Mixer: Set X class of main window. 2010-01-31 20:54:26 -06:00
Jonathan Moore Liles 82b4555ecb Mixer: Show project name on menubar. 2010-01-31 20:54:15 -06:00
Jonathan Moore Liles 2a9939c8c8 Mixer: Don't show mixer strip label. 2010-01-31 20:41:52 -06:00
Jonathan Moore Liles cf9427a006 Mixer: tweak the size of GUI elements. 2010-01-31 19:33:57 -06:00
Jonathan Moore Liles 4a44188596 Fl_Flowpack: Flow mode should default to on! 2010-01-31 19:27:00 -06:00
Jonathan Moore Liles 9916fa0c4f Mixer: Make chains look better in the Light scheme. 2010-01-31 19:14:54 -06:00
Jonathan Moore Liles 4416161862 Update mixer documentation. 2010-01-31 19:04:47 -06:00
Jonathan Moore Liles aa2d8e3e3a Mixer: Use a toggle in module context menu for bypass instead of separate activate/deactivate items. 2010-01-31 18:50:08 -06:00
Jonathan Moore Liles 798302288b Mixer: Add more keybindings to modules. 2010-01-31 18:42:44 -06:00
Jonathan Moore Liles 8b95806b2f Mixer: Improve keyboard focus. 2010-01-31 18:42:40 -06:00
Jonathan Moore Liles 9002016db5 Mixer: Implement cut/copy/paste for modules. 2010-01-31 18:42:21 -06:00
Jonathan Moore Liles 0fe401bc04 Fix syntax error in TLE.fl 2010-01-31 16:31:50 -06:00
Jonathan Moore Liles 0f5f339b84 Makefile: Remove some noise from dependency generation output 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles 6abd18c5ac Make logo used in About_Dialog an option. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles ebdd791f92 Mixer: Don't allow any strips to be created without an open projcet. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles cfd217e200 Mixer: Separate out public project commands. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles 8d9557f88c Enforce JACK client name length restrictions. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles 16778d0039 Update mixer documentation. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles 7e1b52d9f3 Mixer: Fix restrip rename menu option. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles e3ee989ec4 Mixer: Add click-to-focus for mixer strips. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles fab0527527 Mixer: Middle click toggles module activation state. 2010-01-31 16:30:57 -06:00
Jonathan Moore Liles b774ee3f50 Centralize color schemes.
Also, add new color scheme "Very Dark".
2010-01-31 16:30:54 -06:00
Jonathan Moore Liles 417497a368 Add section on control voltages to mixer doc. 2010-01-31 15:41:42 -06:00
Jonathan Moore Liles 41a31daad4 Mixer: Add color chooser to mixer strip context menu. 2010-01-31 15:41:42 -06:00
Jonathan Moore Liles 85ed4a8e02 Add documentation for mixer and restructure supporting tree. 2010-01-31 15:41:39 -06:00
Jonathan Moore Liles 13b3ddc301 Attempt to cope with failure to create JACK clients and ports. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles f464cdbaea Mixer: Respond appropriately to JACK buffer size callback. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 453d7bcd4e Mixer: Clean up event handling. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 3aca0212c4 Mixer: Add context menus for modules. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles a1387c4d62 FL/menu_popup: Call menu's callback if menu item lacks one. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 2eadaa016e Fl_Packscroller: Let children have a go at events... 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 4e634beff5 Mixer: Add context menu to mixer strips. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles b222abc4e1 Prevent Timeline and Mixer from attempting to open each other's project formats. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 6db8e2f3fa Mixer: Attempt to improve the behavior of single-row display mode. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 26afb520f2 Mixer: Allow the WM to kill the mixer window. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 209ece1264 Mixer: Cleanup. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 89a833a33d Mixer: Make insert-before work for meter indicator module. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 95708a2371 Mixer: Add Help/Manual option to menubar. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 8087901269 Mixer: Make sure process queue is rebuilt upon binding of controls. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles e945a3893c Fix the new project dialog. 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles 2bb7d737b9 Split About Dialog off into FL/ 2010-01-31 13:36:34 -06:00
Jonathan Moore Liles a279d35902 Mixer: Apply appropriate change required by 66daa1. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 0a6749fd16 Mixer: Add stuff to Options/ menu. Save and load options. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles bf376d9171 Mixer: Implement Project/Open menu option. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 74f674b30f Mixer: Add some stuff to the menubar. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 763b675600 Mixer: Make spatialization control visible again (but it's still not connected to anything) 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 2b32c8fc4e Mixer: Define minimum height for mixer strips. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 5395cb43e2 Don't bother drawing a DPM if it's clipped. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles ce6aefe2e2 Use Fl_Packscroller for modules in Chain. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles c789f75c73 Implement Fl_Packscroller, an alternative to Fl_Scroll better suited to containing vertical Fl_Packs. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 22f5b51706 Disable mouse-over highlighting of mixer strip name fields. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 78718c45d8 Mixer: Show peak value in tooltip on DPMs. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 3e929e4b98 Mixer: Explicitly destroy chian when tearing down mixer strip. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles daf8ab8e83 Mixer: Make chain background color match mixer strip. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 4a6d084d7c Mixer: Add context menu for Controllers. Save/load control mode. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 57d48128ec Mixer: Scan for plugins in a background thread. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 4d4c913d8d Add option to tile mixer strips into 1, 2, or 3 rows. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles ef8cff622d Mixer: Decrease the default height of Plugin_Module's. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles 4f87297894 Mixer: Put chian modules inside an Fl_Scroll. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles aa2377be6c Timeline: Add a blinker for pending seek. 2010-01-31 13:36:33 -06:00
Jonathan Moore Liles b559a0ed7b JACK doesn't like it if you set a slow-sync callback and don't act like a slow-sync client... 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 34200e2c52 Make the interval of Fl_Blinker configurable. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 916389ff34 Mixer: Don't require a connected control input for processing audio in Gain_Module. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 6782bcbdf8 Mixer: Draw inactive modules in darker colors. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles c684a49afc Mixer: Fix box type of strip name widgets. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles b1a989ba14 Mixer: Use doublebuffering for main window. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 41d5f48441 Mixer: GUI Tweaks. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 26a0ef1a27 Mixer: Fix invalid read in module picker. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles fb9aac8178 Mixer/Chain: Avoid renaming JACK clients unnecessarily. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles db0dfc1701 Mixer: Improve chain insert debugging messages. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 8e0a625312 Mixer: Allow user to add internal modules as well as plugins to a chain. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles e8eae16fa1 Silence warnings about asprintf return value. 2010-01-31 13:35:51 -06:00
Jonathan Moore Liles 078aa38aaf Mixer: Add a Mono Panner module. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 58ca57c64c Timeline: Always resize tracks Fl_Pack.
This eliminates a bug were all tracks are invisible if the resized
window results in the tracks pack being shorter than its original
height.

Conflicts:

	Timeline/Timeline.C
2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 0042d8e531 Cleanup. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles d0af570a36 When recreating ports after 'renaming' a jack client, sort by mode, then alpha. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 5b8040b165 Fix bug in plugin input configuration. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 5248b90880 Mixer/Plugin_Module: Don't die because user picks a category instead of a plugin. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 355bf8dbe8 Mixer: Fix plugin loading chicken/egg problem. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles e1a41ba9c9 Add hack to support 'renaming' of JACK::Client.
We wouldn't need this if JACK had jack_client_set_name().
2010-01-31 13:35:50 -06:00
Jonathan Moore Liles a971175c8e Mixer: Rearrange so that each mixer strip runs as its own JACK client. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 82e1c50b8f Mixer/Plugin_Module: Properly manage number of plugin instances. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 26230bac61 Mixer: Fix race condition causing invalid read in process thread of Meter_Indicator_Module. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 352c930559 Module_Parameter_Editor: Hide the module name label because it rarely fits in the window. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles adf2d11b5b Mixer: Don't forget to save and load controllers. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles d9315ee692 Mixer_Strip: Don't forget strip's color. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 4800ea9824 Mixer/Module: Save/restore 'active' state. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles f213158c14 Module_Parameter_Editor: Use Fl_Menu_Button instead of Fl_Choice to improve layout. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 52099c2193 Mixer: Clip module labels. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 55cb9da100 Mixer: Fix one-off in vertical position of DPM. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 08ddf3bf6a Timeline: Add blinker to indicate that one or more sequence widgets is selected. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 18c281170e Mixer: Gain_Module now accepts gain in dB. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles e4eea1c412 Mixer: Implement "quit" command. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 6d6672e97a Mixer: GUI Cleanups. Also, permit moving of strips to the left/right. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 0e33c199cf Mixer: Add menubar. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 4ed6b98297 JACK_Module: Don't forget to shutdown input ports in destructor. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 02509c2e99 Split New_Project_Dialog out into FL/ to share with mixer. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles d7f74e8e15 Mixer: Changes to support project saving/loading. 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles b7079c6147 Mixer: Don't forget to remove timeouts in destructors! 2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 65d4293665 Mixer: Improve the mousewheel behavior of Fl_Arc_Dial and add Fl_Value_SliderX.
You can now hold down the ctrl key for more precision.
2010-01-31 13:35:50 -06:00
Jonathan Moore Liles 9f751ed858 Mixer: Allow peaks to be reset on mouse click in Meter_Module 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles c06388b2f1 Mixer: Clean up some compiler warnings. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles bdbed2a463 Mixer: Don't redraw mixer strips unnecessarily. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles b93041a0bd Mixer: Fix optimized meter drawing. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 0d20f9da81 Mixer: Share (reuse) buffers between all chains. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 20530efd3d Mixer: Teach modules how to serializer their input port settings. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 07ae3f3ade Mixer: Hide panner widget until it's ready to be connected to something... 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles ca897ca9d1 Mixer: Make main scrollbar work again. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 8b80c1eb01 Mixer: Fix orientation of vertical sliders in Module_Parameter_Editor 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 4014b79c5c Mixer: Properly handle multiple plugin instances in one Plugin module.. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles b1d7d58d60 Mixer: Fix memory error and fill newly allocated chain buffers with silence. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles eacbcc173d Implement Mixer. 2010-01-31 13:35:49 -06:00
Jonathan Moore Liles 55ebb9e107 Remove (deprecated) LASH support. 2010-01-31 13:10:40 -06:00
Jonathan Moore Liles 77359fb5bb Properly set default color scheme.
This fixes a bug where the default color scheme setting doesn't take
effect until the second program run.
2010-01-30 01:03:35 -06:00
Jonathan Moore Liles d702844717 Add entries (with keybindings) for size to Track context menu. 2010-01-30 00:42:26 -06:00
Jonathan Moore Liles 35959291ef Assign a shortcut to 'Transport' submenu. 2010-01-30 00:32:27 -06:00
Jonathan Moore Liles 258b4136cc Add FL_Menu keybinding to popup Track context menu. 2010-01-30 00:30:10 -06:00
Jonathan Moore Liles b3fb6aa9b7 Add context menu entries (with keybindings) to Track for record, mute, and solo. 2010-01-30 00:01:02 -06:00
Jonathan Moore Liles bcb7c63473 Ignore events with modifiers in Timeline::handle() to avoid eating keyboard event for global rec enable. 2010-01-30 00:00:24 -06:00
Jonathan Moore Liles b0b5a1f510 Make it optional (Options/Behavior/...) wether or not stopping the transport disables global record. 2010-01-29 23:45:30 -06:00
Jonathan Moore Liles 60e54068b3 User can temporarily disable snapping by holding down 's'. 2010-01-26 08:31:04 -06:00
Jonathan Moore Liles 80f24ba2d1 Allow the removal of annotation sequences via a context menu. 2010-01-24 16:42:32 -06:00
Jonathan Moore Liles 2cc88013df Control Sequences should output control voltage values between 0.0 and 1.0, not -1.0 and 1.0. 2010-01-24 13:57:05 -06:00
Peter Nelson 1d826848a4 Don't silence input ports.
Fix for input buffers being erroneously silenced when the transport
is not rolling.
2010-01-23 20:08:22 -06:00
Jonathan Moore Liles 66daa1e23f Don't allow process callback to be invoked between Engine and JACK::Client destruction.
Patch submitted by Peter Nelson. Comments added.
2010-01-23 10:21:38 -06:00
Jonathan Moore Liles 33e4516589 Timeline: Attempt to constrain main window to size of screen, but don't automatically fill the screen.
Also, set a sane minimum window size.
2010-01-22 19:27:57 -06:00
Jonathan Moore Liles bc14e06320 Attempt to fix sign error in declicking logic for 64-bit systems. 2010-01-21 23:30:52 -06:00
Jonathan Moore Liles 94310eecfa Add some profiling output for project loading. 2010-01-17 18:58:57 -06:00
Jonathan Moore Liles 0e97d2d9d9 Timeline: Don't die if the user cancels a Track's manual channels set dialog. 2010-01-17 12:59:10 -06:00
Jonathan Moore Liles 178ce417ee Don't die if user picks a popup menu item with no callback set (e.g. a submenu node). 2010-01-17 12:16:41 -06:00
Jonathan Moore Liles 74df856ebe Timeline: Always resize tracks Fl_Pack.
This eliminates a bug were all tracks are invisible if the resized
window results in the tracks pack being shorter than its original
height.
2010-01-17 11:50:36 -06:00
Jonathan Moore Liles 2136a8e6d3 Fl_Labelpad_Group: Measure using actual font of widget instead of always FL_HELVETICA. 2010-01-17 11:49:02 -06:00
Jonathan Moore Liles f70ec7a4d5 Fl_Sometimes_Input: Add omitted include. 2010-01-17 11:48:48 -06:00
Jonathan Moore Liles 52da5eaa5a Timeline: Don't forget to journal edits to time and tempo points! 2010-01-17 11:48:37 -06:00
Jonathan Moore Liles ef0626ae75 Timeline: Add blinker to indicate that one or more sequence widgets is selected.
Conflicts:

	Timeline/TLE.fl
2010-01-17 11:48:22 -06:00
Jonathan Moore Liles b7087b3132 LASH_Engine: Add missing include. 2010-01-17 11:39:37 -06:00
Jonathan Moore Liles c438036698 Update some copyright years. 2010-01-08 21:33:12 -06:00
Jonathan Moore Liles 167a924caf Make use of a sub-window for the timeline a compile-time option. 2010-01-08 00:04:28 -06:00
Jonathan Moore Liles e904ff9fae Make doublebuffering of the timeline sub-window a compile-time option. 2010-01-07 23:35:50 -06:00
Jonathan Moore Liles 0bd5611092 Make optimized drawing of timeline canvas a compile-time option. 2010-01-07 23:26:10 -06:00
Jonathan Moore Liles 58ee27f7f1 Configure: Don't forget to eval result of 'ask' function. 2010-01-07 23:25:07 -06:00
Jonathan Moore Liles 90c8efb32d Make boxtype drawn on Fl_Sometimes_Input's up mode configurable. 2009-12-26 02:31:59 -06:00
Jonathan Moore Liles e2f42b1c8b Timeline: Try to make the window fill the screen at startup. 2009-12-26 02:25:01 -06:00
Jonathan Moore Liles 00d0d733b5 Makefile: disable function inlining when building for debugging. 2009-12-24 19:02:49 -06:00
Jonathan Moore Liles 48698780d9 Refactor common components of Timeline and Mixer into nonlib/ 2009-12-24 18:57:34 -06:00
Jonathan Moore Liles 537f874417 Fl_Sometimes_Input: Draw a box. 2009-12-24 18:25:33 -06:00
Jonathan Moore Liles 68bf93feb4 Implement Fl_Labelpad_Group
Which wraps a widget in a group large enough to contain the child widget's
label.
2009-12-24 18:24:53 -06:00
Jonathan Moore Liles 9c0f0afb46 Implement Fl_Flowpack.
Which wraps its children and resizes itself vertically to contain them.
2009-12-24 18:23:54 -06:00
Jonathan Moore Liles 7e328df3c3 Fl_Arc_Dial: Draw value over face of dial 2009-12-24 18:17:07 -06:00
Jonathan Moore Liles 4f5ce252e0 Soften the glare effect in FL_BURNISHED_OVAL_BOX 2009-12-24 18:17:01 -06:00
Jonathan Moore Liles e185d8785b Fl_Arc_Dial: Don't forget to execute callback for mousewheel events 2009-12-24 18:16:52 -06:00
Jonathan Moore Liles 3446058df6 Add 'ar' to required commands in configure script. 2009-12-24 18:16:35 -06:00
Jonathan Moore Liles 93fc68be40 Check for makedepend command in configure script. 2009-12-24 18:16:32 -06:00
Jonathan Moore Liles 5c06e9d2c8 Don't allow transport relocation while recording. 2009-10-29 23:13:11 -05:00
Jonathan Moore Liles df344dc065 Assert whenever an invalid journal entry is encountered. 2009-09-07 19:53:04 -05:00
Jonathan Moore Liles 942389a503 Clean up journal transaction buffer code to avoid overflow. 2009-09-07 19:48:34 -05:00
Jonathan Moore Liles 71bd1c27d9 Clean up region splitting code. 2009-04-26 15:56:35 -05:00
Jonathan Moore Liles 99937affb9 Clean up region trimming code. 2009-04-26 15:56:33 -05:00
Jonathan Moore Liles c903e96d00 Don't lose timeline settings on LASH save event... 2009-04-26 15:56:27 -05:00
Jonathan Moore Liles 18eba0d14b Save unjournaled state on LASH save file event. 2009-01-19 22:45:39 -06:00
Jonathan Moore Liles cece0d5e0a Give newly created track the focus. 2009-01-19 22:34:33 -06:00
Jonathan Moore Liles 86fa1ce238 Implement capture-offset latency compensation. 2009-01-19 21:49:18 -06:00
Jonathan Moore Liles 1917e9295c Don't leak memory in handling of unjournaled state. 2009-01-11 22:33:36 -06:00
Jonathan Moore Liles cf0576e6ff Remove unnecessary debugging output. 2009-01-11 22:18:56 -06:00
Jonathan Moore Liles 5446629c3e Use a single hash table for storing loggables and unjournaled state. 2009-01-11 22:18:55 -06:00
Jonathan Moore Liles f5c81d53be Remove unnecessary code from unjournaled state loader. 2009-01-11 22:18:55 -06:00
Jonathan Moore Liles f365b9d8f7 Add some error checking to unjournaled state save/load. 2009-01-11 22:18:54 -06:00
Jonathan Moore Liles 0032dce478 Use a hash instead of an array for indexing loggables. 2009-01-11 22:18:53 -06:00
Jonathan Moore Liles 15a579774c Implement storage and loading of unjournaled state for Loggable objects. 2009-01-11 22:18:53 -06:00
Jonathan Moore Liles 8dc6681a53 Add LASH connection indicator to GUI along with --no-lash command line option. 2009-01-11 21:38:30 -06:00
Jonathan Moore Liles 3e86584ad3 Clean up signedness problems in Loggable ID treatment. 2009-01-11 17:38:50 -06:00
Jonathan Moore Liles fed042950f Cleanup capture code and eliminate off-by-one-buffer bug when bouncing tracks. 2009-01-02 01:21:43 -06:00
Jonathan Moore Liles f3226cd1a0 Fix selection bug for Control Points.
A recent selection model change interfered with the ability to edit
the Y-axis of control points.
2008-12-28 00:27:43 -06:00
Jonathan Moore Liles 78afa80db8 Display Y-axis value for control points on mouse over. 2008-12-28 00:15:44 -06:00
Jonathan Moore Liles 356883f160 Disable some Audio_Region context menu items when appropriate. 2008-12-28 00:13:24 -06:00
Jonathan Moore Liles 90639f65dd Add 'Denormalize' to Audio_Region context menu. 2008-12-28 00:13:23 -06:00
Jonathan Moore Liles 4e1ece8954 Don't make an assertion when drawing empty regions. 2008-12-27 15:44:07 -06:00
Jonathan Moore Liles 87ad823288 Clean up sequence widget label drawing behavior. 2008-12-27 15:44:07 -06:00
Jonathan Moore Liles 8a76b01db9 Fix occasional segfault upon loading snapshots.
Sometimes the situation could arise where a log ID referred to by a
log entry's property list coincided with the temporary log ID
associated with the object being created--usually resulting in an
immediate segfault. Assigning the final log ID BEFORE setting the
properties prevents this from happening.
2008-12-18 01:18:41 -06:00
Jonathan Moore Liles 71b0d4a867 remove-unused-sources: Fix source detection regex and add -m (move) option (now the default) 2008-12-17 21:04:33 -06:00
Jonathan Moore Liles 131453cce9 Draw inactive takes in a darker hue. 2008-12-06 15:45:37 -06:00
Jonathan Moore Liles a701d53265 remove-unused-sources: Include peak files in deletion and size calculation. 2008-12-06 00:56:55 -06:00
Jonathan Moore Liles 6f53a6fc10 Oops. Remove debugging noise from console output. 2008-12-06 00:45:51 -06:00
Jonathan Moore Liles 5af2e2d73b Add total MB free'd to output of 'remove-unused-sources' script. 2008-12-06 00:35:14 -06:00
Jonathan Moore Liles 193dc19c91 Use timestamps (of creation) for take names instead of sequential numbers. 2008-12-04 08:13:28 -06:00
Jonathan Moore Liles b22a286fa8 Fix log entry parser for values containing ":" (colons). 2008-12-04 08:13:27 -06:00
Jonathan Moore Liles a07d997397 Set value of 'show all takes' toggle correctly when updating menus. 2008-08-04 00:12:35 -05:00
Jonathan Moore Liles 74ffa575d9 Oops. Write journal entries in proper order when generating snapshot. 2008-08-04 00:06:45 -05:00
Jonathan Moore Liles 174ca34382 Remove extraneous inclusions of const.h 2008-08-04 00:03:29 -05:00
Jonathan Moore Liles feafd916db Add option to remove all but the current take. 2008-08-01 00:19:21 -05:00
Jonathan Moore Liles b25c206ceb Properly handle removal of a track's active sequence. 2008-08-01 00:13:51 -05:00
Jonathan Moore Liles d84383c704 Formally disconnect from JACK at exit. 2008-07-30 23:14:49 -05:00
Jonathan Moore Liles 37935df806 Take fades into consideration when splitting regions.
Also, fix journalling bug in region splitting.
2008-07-30 23:03:16 -05:00
Jonathan Moore Liles 840d08aed9 Show disk usage in TLE. 2008-07-30 01:48:22 -05:00
Jonathan Moore Liles 1f4c3b4f9a Don't quit on escape key. 2008-07-29 21:35:19 -05:00
Jonathan Moore Liles d2a8373cff Add module information to debugging output. 2008-07-29 21:30:45 -05:00
Jonathan Moore Liles 4cf94d8f1d Use exact JACK client name in LASH initialization. 2008-07-29 19:20:34 -05:00
Jonathan Moore Liles 35deffd747 Oops. Fix order of reference in track destructor. 2008-07-27 19:10:35 -05:00
Jonathan Moore Liles 8ae5783c3e Add solo and record blinkers to TLE.
Also, fix bug in soloing when a solo'd track was removed.
2008-07-26 01:49:57 -05:00
Jonathan Moore Liles cdbf01183c Improve the appearance of rec/mute/solo buttons. 2008-07-25 23:39:26 -05:00
Jonathan Moore Liles 32f47edaa1 Make normalization work properly with looped regions. 2008-07-23 23:33:32 -05:00
Jonathan Moore Liles d490e88707 Handle very long port names. 2008-07-21 23:36:29 -05:00
Jonathan Moore Liles 00aeaff29b Add action to set range from region position and length. 2008-07-21 22:20:38 -05:00
Jonathan Moore Liles 869cf25b3b Provide a keybinding/menu entry for track renaming. 2008-07-20 22:56:45 -05:00
Jonathan Moore Liles 8545b82b49 Don't lose track of timeline focus when window loses focus. 2008-07-20 22:32:59 -05:00
Jonathan Moore Liles b1b879dcad Fix offset error in selection rectangle. 2008-07-20 16:38:11 -05:00
Jonathan Moore Liles 5091277edb Make mute and solo buttons more colorful. 2008-07-20 16:17:17 -05:00
Jonathan Moore Liles b6e0826684 Remove dependence on FLTK >= 1.1.8. 2008-07-20 15:33:12 -05:00
Jonathan Moore Liles c837a11812 Add documentation. 2008-07-19 12:06:47 -05:00
Jonathan Moore Liles 0100e482c5 Don't carry project settings over from old project when creating a new one. 2008-07-19 11:41:24 -05:00
Jonathan Moore Liles 5b752d5dc5 Add creation and modification times to project info dialog. 2008-07-18 23:31:47 -05:00
Jonathan Moore Liles 7e294df84e Fix race condition in capture finalization.
This race resulted in the failure to consistently redraw new captures
in the proper color.
2008-07-17 20:58:49 -05:00
Jonathan Moore Liles 221242a27d Implement traditional mouse selection model. 2008-07-15 00:41:05 -05:00
Jonathan Moore Liles ffaa7bff61 Reference count Audio_Files. 2008-07-14 23:49:50 -05:00
Jonathan Moore Liles b4e41435e1 Fix uninitialized memory. 2008-07-14 23:07:47 -05:00
Jonathan Moore Liles 3330619e9a Avoid SIGFPE at wide zoom setting with looped regions. 2008-07-13 00:59:59 -05:00
Jonathan Moore Liles dbc73860ca Fix heisenbug in journaling. 2008-07-11 23:30:07 -05:00
Jonathan Moore Liles 4a7533b6d6 Clean up makefile. 2008-07-09 22:44:20 -05:00
Jonathan Moore Liles d23ac18122 Update ignore file. 2008-07-06 12:27:42 -05:00
Jonathan Moore Liles ea36473caa Improve loop drawing. 2008-07-06 00:10:58 -05:00
Jonathan Moore Liles 98613d4d61 Avoid re-reading peaks unnecessarily when drawing loops. 2008-07-05 23:42:31 -05:00
Jonathan Moore Liles dfaf04645c Consider loop points when drawing waveforms. 2008-07-05 23:42:27 -05:00
Jonathan Moore Liles 7dc9a475e9 Bypass magnetic snap for loop points. 2008-07-05 23:42:16 -05:00
Jonathan Moore Liles b0098355cc Add script for importing external sources. 2008-06-28 16:08:25 -05:00
Jonathan Moore Liles 55ebea2c94 Make template field visible again on New Project Dialog. 2008-06-26 22:58:15 -05:00
Jonathan Moore Liles b74e93868a Fix typo in region menu. 2008-06-23 22:47:53 -05:00
Jonathan Moore Liles d7077cda19 Add normalize and remove to region menu. 2008-06-22 20:04:17 -05:00
Jonathan Moore Liles d4535ab52e Clean up sequence widget class. 2008-06-22 20:01:09 -05:00
Jonathan Moore Liles 9335a97933 Fix bug in log entry diffing. 2008-06-22 00:48:07 -05:00
Jonathan Moore Liles 6e7f0ee46f Clean up TLE class. 2008-06-21 23:31:46 -05:00
Jonathan Moore Liles cffcec79ab Don't zoom in so far on new projects. 2008-06-21 22:57:14 -05:00
Jonathan Moore Liles a36f515f65 Keep track of default project path across sessions. 2008-06-21 22:15:05 -05:00
Jonathan Moore Liles f50c8318ff Clean up takes menu building. Add 'remove' action. 2008-06-21 22:01:04 -05:00
Jonathan Moore Liles 4731dea3b3 Move Options/Project/Timeline to Project/Settings in the menu bar. 2008-06-21 21:06:12 -05:00
Jonathan Moore Liles 05110222e6 Cleanup logos. 2008-06-21 20:35:55 -05:00
Jonathan Moore Liles fd747b235f Display more useful error messages when project loading fails. 2008-06-21 18:47:24 -05:00
Jonathan Moore Liles 621e278f38 Actually check project info when loading. 2008-06-21 16:28:17 -05:00
Jonathan Moore Liles 59bbcf66c8 Cleanup and update remove-unused-soruces script. 2008-06-21 14:29:15 -05:00
Jonathan Moore Liles 9c19d865bb More comments. 2008-06-20 23:38:29 -05:00
Jonathan Moore Liles eb11a409d2 Actually store captures under sources/ subdirectory. 2008-06-19 23:04:37 -05:00
Jonathan Moore Liles c8a74348ba Makefile: Add the beginnings of an install rule. 2008-06-19 22:33:43 -05:00
Jonathan Moore Liles 170b11010e Cleanups and commenting. 2008-06-19 21:55:47 -05:00
Jonathan Moore Liles 6d9a5bb1d5 Hide currently unused Template combobox in New_Project_Dialog. 2008-06-18 21:23:59 -05:00
Jonathan Moore Liles a7d9e30038 Cleanup includes. 2008-06-17 23:01:22 -05:00
Jonathan Moore Liles c1217e649b Cleanups. 2008-06-17 22:41:15 -05:00
Jonathan Moore Liles f4c825949e Add keybinding to select sequence widget under playhead. 2008-06-17 22:09:09 -05:00
Jonathan Moore Liles 34761757ed Update GPL scanning script. 2008-06-17 20:43:40 -05:00
Jonathan Moore Liles 9c21fb209a Display more specific error messages when project open fails. 2008-06-15 21:44:45 -05:00
Jonathan Moore Liles 38182a85e3 Cleanup Project_Info_Dialog. 2008-06-15 21:18:25 -05:00
Jonathan Moore Liles a510e0b5a4 Add full GPL preable to config-funcs. 2008-06-15 20:18:21 -05:00
Jonathan Moore Liles 3a6f9ac129 Add license scanner. 2008-06-15 20:16:55 -05:00
Jonathan Moore Liles b56b2e0b21 Add full GPL text. 2008-06-15 19:36:47 -05:00
Jonathan Moore Liles 93464cec05 Add some missing GPL headers. 2008-06-15 19:36:16 -05:00
Jonathan Moore Liles bb7e7b46f6 Clean up some new warnings from the new version of GCC. 2008-06-15 19:19:44 -05:00
Jonathan Moore Liles 0e34509e51 Don't use invalid info in the Timebase callback if no tempo map exists. 2008-06-13 23:51:15 -05:00
Jonathan Moore Liles c55b01dc68 Don't draw 'end' cursor, for now. 2008-06-12 21:21:24 -05:00
Jonathan Moore Liles a09c85f39e Clean up Project_Info_Dialog. 2008-06-12 21:21:08 -05:00
Jonathan Moore Liles 723bcf2bd7 Add length and number of tracks to Project_Info_Dialog. 2008-06-11 22:52:34 -05:00
Jonathan Moore Liles 3740c8a566 TLE: Cause Quit action to return, rather than simply calling exit. 2008-06-10 23:50:18 -05:00
Jonathan Moore Liles 5e5e79b412 Add Project_Info_Dialog. 2008-06-10 22:43:13 -05:00
Jonathan Moore Liles a842c129ad Cleanups. 2008-06-10 20:55:39 -05:00
Jonathan Moore Liles 957eed1f15 Notify user when JACK disconnects us. 2008-06-10 19:54:20 -05:00
Jonathan Moore Liles 635acb78e1 Move code out of transport header. Turn off record button after recording has stopped. 2008-06-09 21:14:43 -05:00
Jonathan Moore Liles 077086e538 Maybe rebuffer on normalize. 2008-06-09 21:04:52 -05:00
Jonathan Moore Liles 4235e0ee05 Allow Undo to go beyond the last block in the journal. 2008-06-08 22:12:08 -05:00
Jonathan Moore Liles fe941f7185 configure: Pull version test fix from Non-Sequencer. 2008-06-08 17:44:25 -05:00
Jonathan Moore Liles d8ed74d093 Get rid of useless message. 2008-06-07 10:35:23 -05:00
Jonathan Moore Liles aa0f65af21 Make deletion of container widgets undoable! 2008-06-05 23:14:00 -05:00
Jonathan Moore Liles 0eeb63749f Oops. Fix Log_Entry diff'ing. 2008-06-05 22:26:51 -05:00
Jonathan Moore Liles ea38dd48b9 Don't respond to Timeline keybindings when Timeline is inactive. 2008-06-05 22:07:56 -05:00
Jonathan Moore Liles ded97d5197 Fix error in progress display when creating a new project. 2008-06-05 21:57:09 -05:00
Jonathan Moore Liles 92513bfb21 Fix TLE control group dimensions. 2008-06-05 21:49:38 -05:00
Jonathan Moore Liles e86ef478c0 Make load progress work for projects loaded from the command line too. 2008-06-05 21:30:34 -05:00
Jonathan Moore Liles f684703840 Show progress when opening project. 2008-06-04 23:27:55 -05:00
Jonathan Moore Liles e239f780ea Print an an error message if JACK cannot connect. Ignore SIGPIPE (that JACK sends). 2008-06-04 21:11:17 -05:00
Jonathan Moore Liles f093abb887 Automatically save a snapshot when close()'ing a project.
This snapshot, if up-to-date, may be used to accellerate loading of
projects with very long histories.
2008-06-04 21:10:37 -05:00
Jonathan Moore Liles c3603a8bfd Add comments. 2008-06-03 23:41:53 -05:00
Jonathan Moore Liles 2a67c132f4 Cleanups. 2008-06-03 23:28:28 -05:00
Jonathan Moore Liles f370219f17 Continue refactoring Log_Entry. 2008-06-03 22:47:26 -05:00
Jonathan Moore Liles 6a324b45c3 Split more of Log_Entry out. 2008-06-03 22:34:36 -05:00
Jonathan Moore Liles 6e3e41f9ba Split Log_Entry class into files of its own. 2008-06-03 22:22:13 -05:00
Jonathan Moore Liles 9ae6c0ea5e Wrap pthreads in a Thread class. Implement basic thread role checking. 2008-06-01 20:52:25 -05:00
Jonathan Moore Liles 08e50292c8 Permit setting tempo from (bar) range. 2008-05-31 20:54:01 -05:00
Jonathan Moore Liles 18800a97d9 Snap loop points and add menu action to clear them. 2008-05-31 20:15:32 -05:00
Jonathan Moore Liles 801c1c484c Don't drop frames when buffer crosses loop boundaries. 2008-05-31 20:15:32 -05:00
Jonathan Moore Liles e8ea8724ce First approximation of looping regions at playback. 2008-05-31 20:15:32 -05:00
Jonathan Moore Liles dbe80ad8e6 Begin to support region loop points. 2008-05-31 20:15:32 -05:00
Jonathan Moore Liles e48c429fd6 Fix zoom-dependent error in snap code. 2008-05-31 20:15:01 -05:00
Jonathan Moore Liles 54fe22e2d4 Make 'fit' zoom action reset the viewport position. 2008-05-31 20:14:55 -05:00
Jonathan Moore Liles 14e1025db2 configure: Improve test output. 2008-05-31 13:32:31 -05:00
Jonathan Moore Liles d248786085 Clean up menu code. Assure valid callbacks. 2008-05-30 18:48:44 -05:00
Jonathan Moore Liles f0cfdd01c8 Make the sequence focus color more obvious. 2008-05-30 10:21:39 -05:00
Jonathan Moore Liles a004e4a193 Always show control points when control sequence is focused. 2008-05-30 10:15:12 -05:00
Jonathan Moore Liles f048c4ccaa Fix misdraw while scrolling. 2008-05-29 23:17:41 -05:00
Jonathan Moore Liles f5c15e3941 Delay slow-sync rebuffer until absolutely necessary. 2008-05-29 23:11:56 -05:00
Jonathan Moore Liles f0a973d652 Cleanup menu generation. 2008-05-29 22:34:42 -05:00
Jonathan Moore Liles c98016d5e4 Move Track context menu over to the same system that Sequence and Audio_Region use. 2008-05-29 22:28:56 -05:00
Jonathan Moore Liles 4bb22f2506 Move keyboard bindings for timeline. 2008-05-29 21:28:26 -05:00
Jonathan Moore Liles fd9497f044 Implement move playhead by beat. 2008-05-29 17:45:04 -05:00
Jonathan Moore Liles 0acc95509e Clean up display of annotation regions. 2008-05-29 16:54:10 -05:00
Jonathan Moore Liles 3d3998cccb Always draw region boxes with horizontal shading. 2008-05-29 16:54:03 -05:00
Jonathan Moore Liles b17623720e Change the way project length is calculated. 2008-05-29 16:10:49 -05:00
Jonathan Moore Liles 5543edf8ec Fit zoom when opening project. 2008-05-29 15:46:17 -05:00
Jonathan Moore Liles 7b03a7fb4d Lock open project. 2008-05-29 15:45:59 -05:00
Jonathan Moore Liles 0643dac88a makefile: rename make.conf to .config. Handle missing .config gracefully. 2008-05-29 13:35:04 -05:00
Jonathan Moore Liles edb665ebc3 Handle keypress events properly for the selection. 2008-05-29 13:01:10 -05:00
Jonathan Moore Liles 4163d0230b Draw crossfades properly even when zoomed way in. 2008-05-29 11:38:06 -05:00
Jonathan Moore Liles ea8c35d0fe Rewrite Audio_Region context menu. Use the menu for handling region specific shortcuts. 2008-05-29 01:11:35 -05:00
Jonathan Moore Liles 43e561982b Work on timeline menu actions. 2008-05-28 20:31:06 -05:00
Jonathan Moore Liles 8a3a38b2a0 Properly clear pushed and belowmouse at sequence widget destruction time. 2008-05-28 01:13:23 -05:00
Jonathan Moore Liles 6330fde479 Fix format for HMS clock. 2008-05-28 00:20:45 -05:00
Jonathan Moore Liles 5fb04e863b Add next/prev widget bindings for sequences. 2008-05-28 00:19:14 -05:00
Jonathan Moore Liles 60a6c29197 Clean up build. 2008-05-27 23:21:01 -05:00
Jonathan Moore Liles dc7d769cf7 Fix order of disk stream thread destruction. 2008-05-27 21:44:57 -05:00
Jonathan Moore Liles 54f0fd2fd9 Fix uninitialized members found by valgrind. 2008-05-27 19:38:45 -05:00
Jonathan Moore Liles 2c502795ab Remove dead code. 2008-05-27 19:37:42 -05:00
Jonathan Moore Liles 455dc11dc8 Fix order of track destruction. 2008-05-27 19:37:41 -05:00
Jonathan Moore Liles c8eb82d124 Make timeline 'length' dynamic. 2008-05-27 18:47:47 -05:00
Jonathan Moore Liles f0b0c455c7 makefile: add 'dist' target. 2008-05-27 17:14:37 -05:00
Jonathan Moore Liles b4e2a6b4b6 makefile: improve git integration 2008-05-27 16:27:19 -05:00
Jonathan Moore Liles 452292a943 makefile: Add percent complete calculation and display. 2008-05-27 15:25:24 -05:00
Jonathan Moore Liles 9dedd7b837 Don't let timeline scrollbar eat Home and End. 2008-05-26 22:57:54 -05:00
Jonathan Moore Liles 622a4a68dc Make sequence jumping and duplication work for all sequence widgets. 2008-05-26 22:49:27 -05:00
Jonathan Moore Liles 424b1b9b8f Clean up keyboard focus navigation. 2008-05-26 22:32:35 -05:00
Jonathan Moore Liles 035474e17c Clean up a number of focus/event handling problems. 2008-05-26 19:29:05 -05:00
Jonathan Moore Liles 331078c3b2 Move Engine portion of Control_Sequence into Engine/. 2008-05-26 14:39:50 -05:00
Jonathan Moore Liles ab7cab34bd configure: cleanups. 2008-05-26 13:44:17 -05:00
Jonathan Moore Liles 8dd0f3ee33 configure: cleanup and (re)add sed requirement. 2008-05-26 13:29:10 -05:00
Jonathan Moore Liles 2fe8d7b401 Move Fl_Menu_Settings into FL/. Add makefile rules to rebuild dependencies. 2008-05-26 13:14:55 -05:00
Jonathan Moore Liles b8b9a3b029 Move Mixer into its own branch until it's ready. 2008-05-26 11:29:35 -05:00
Jonathan Moore Liles 318144baed Clean up comments. 2008-05-26 10:16:19 -05:00
Jonathan Moore Liles 4c45197003 Fix order of destruction for sequences. 2008-05-26 01:20:49 -05:00
Jonathan Moore Liles 3717eb12c3 Avoid deadlock. 2008-05-26 00:46:49 -05:00
Jonathan Moore Liles 3ef7b52ebc Get rid of duplicate :color field. 2008-05-26 00:46:37 -05:00
Jonathan Moore Liles 53876092f4 Permit removing tracks while the transport is rolling, since it doesn't hurt anymore. 2008-05-25 23:19:13 -05:00
Jonathan Moore Liles b20156053e Add appropriate locking. Make control sequences removable. 2008-05-25 23:08:25 -05:00
Jonathan Moore Liles 03465d82b0 Add color choice to region popup menu. 2008-05-25 22:40:38 -05:00
Jonathan Moore Liles ebc059ac31 Don't bother rebuffering if the transport isn't rolling. 2008-05-25 21:51:55 -05:00
Jonathan Moore Liles 0e1ac2563d Overhaul timeline event handling. 2008-05-25 21:51:36 -05:00
Jonathan Moore Liles 0525433a41 Improve about dialog. 2008-05-25 19:03:43 -05:00
Jonathan Moore Liles d521c2af23 Cleanup debug header. 2008-05-25 17:34:26 -05:00
Jonathan Moore Liles c210a65a00 Shutdown IO threads before destroying Disk_Stream. 2008-05-25 17:27:24 -05:00
Jonathan Moore Liles d2afffbb7c Don't trash memory with timeline menu stuff. 2008-05-25 15:48:37 -05:00
Jonathan Moore Liles 9b38190211 Add locking. Don't call handle_widget_change often while dragging. 2008-05-25 14:11:28 -05:00
Jonathan Moore Liles 9f567c6966 TLE: clean up menubar. 2008-05-25 13:45:20 -05:00
Jonathan Moore Liles 7aa95de4c5 configure: minor improvements. 2008-05-25 12:12:51 -05:00
Jonathan Moore Liles 1c599fd7f6 configure: add some autoconf emulation. 2008-05-25 11:58:30 -05:00
Jonathan Moore Liles 0d40ca5b6b build: use git to generate lists of sources for makefile. 2008-05-25 09:39:29 -05:00
Jonathan Moore Liles 26b9f2cf6b Move more timeline keybindings into menu. 2008-05-25 01:18:30 -05:00
Jonathan Moore Liles 06a0518463 Rearrange menus. Keep timeline menu in timeline class and share it with popup menu. 2008-05-25 01:14:17 -05:00
Jonathan Moore Liles 3d40848e52 TLE: Rename menu items. 2008-05-24 23:31:41 -05:00
Jonathan Moore Liles ba430eb236 Add 't' key on timeline to add a tempo point using the current range as the beat length. 2008-05-24 22:27:23 -05:00
Jonathan Moore Liles 734e3b555b Cleanup. 2008-05-23 18:48:44 -05:00
Jonathan Moore Liles 1616465e39 Overhaul capture finalization. 2008-05-22 21:23:41 -05:00
Jonathan Moore Liles 232d23915a Mipmap peak building actually happens in the UI thread, not the IO thread.
Therefore, it is always necessary to fork when mipmapping peaks after capture.
2008-05-22 18:12:51 -05:00
Jonathan Moore Liles 33c646109f Adapt other classes to the new handle_widget_change() method. 2008-05-22 17:02:39 -05:00
Jonathan Moore Liles 4c75e2bd7d Makefile: Oops. Actually included dependencies. 2008-05-22 15:59:01 -05:00
Jonathan Moore Liles 8eb4cb8735 Cleanup. 2008-05-22 15:58:36 -05:00
Jonathan Moore Liles c79d48c663 Rebuffer when an audio region is moved. 2008-05-22 15:34:21 -05:00
Jonathan Moore Liles 6c9e2c8c07 Add locking for sequence widget drags. 2008-05-22 14:20:15 -05:00
Jonathan Moore Liles 98507e60bd Add locking for track widget drags. 2008-05-22 14:19:39 -05:00
Jonathan Moore Liles f9fb837c58 Add missing GPL headers. 2008-05-22 11:34:33 -05:00
Jonathan Moore Liles df93c3f8ef Minor build cleanup. 2008-05-22 02:13:27 -05:00
Jonathan Moore Liles bd82f954a8 Move (mostly) all Engine functionality into Engine/ directory. 2008-05-22 02:05:49 -05:00
Jonathan Moore Liles 0840face8f Cleanup. 2008-05-21 22:05:10 -05:00
Jonathan Moore Liles 2a1eac2731 Set visual at startup. 2008-05-21 22:02:38 -05:00
Jonathan Moore Liles 821250d9de Allow the user to use r+drag to set the range. 2008-05-21 21:49:14 -05:00
Jonathan Moore Liles 3938253a5a Change the way cursor caps are drawn. 2008-05-21 21:29:06 -05:00
Jonathan Moore Liles d9a8ec1d13 Minor cleanups. 2008-05-21 19:40:25 -05:00
Jonathan Moore Liles bfcb2f11b9 Makefile: cleanup, fix typo. 2008-05-21 10:20:01 -05:00
Jonathan Moore Liles fc6ffee22e Handle missing sources gracefully. 2008-05-20 19:46:02 -05:00
Jonathan Moore Liles 7e72339ea9 configure: always name *_LIBS and *_FLAGS in uppercase. 2008-05-20 16:07:03 -05:00
Jonathan Moore Liles 94de188684 configure: process old arguments more robustly. 2008-05-20 14:34:02 -05:00
Jonathan Moore Liles 48d7f61f8a Respond appropriately to changes in JACK buffer size. 2008-05-19 23:30:08 -05:00
Jonathan Moore Liles 97f0283780 Add locking to redraws triggered while recording. 2008-05-19 00:07:42 -05:00
Jonathan Moore Liles 8d385de54c Draw secondary cursors on timeline instead of in the overlay. 2008-05-18 22:45:37 -05:00
Jonathan Moore Liles ef254cfbae Initialize properties in the right order. 2008-05-18 22:45:07 -05:00
Jonathan Moore Liles 11add2dd63 Oops. Don't allow an unselected sequence widget to drag past 0 either. 2008-05-18 22:06:14 -05:00
Jonathan Moore Liles 47dbf6c537 Clear up a load of compiler warnings. 2008-05-18 22:01:09 -05:00
Jonathan Moore Liles 9ef454291a Fix selection issues.
This fixes the bug where some selected wigets would disappear to frame 0.
It also prevents moving any widget behind 0.
2008-05-18 21:40:42 -05:00
Jonathan Moore Liles 06de784661 Minor cleanup. 2008-05-18 21:01:59 -05:00
Jonathan Moore Liles d40bc52a5a Cleanups. Move waveform scaling into Waveform class. 2008-05-18 19:42:27 -05:00
Jonathan Moore Liles 8d7bee3050 Improve about dialog. 2008-05-18 19:31:27 -05:00
Jonathan Moore Liles a7fe4c5348 Cleanup build. 2008-05-18 12:00:27 -05:00
Jonathan Moore Liles 6edd388722 More build cleanup. 2008-05-18 10:30:06 -05:00
Jonathan Moore Liles 38f191eb41 Build cleanups. Don't require sed in configure. 2008-05-18 09:50:42 -05:00
Jonathan Moore Liles 3e1a32c8be Cleanup. 2008-05-18 00:09:18 -05:00
Jonathan Moore Liles 0d9fe2b9b8 More build cleanups. 2008-05-17 23:28:36 -05:00
Jonathan Moore Liles 5cb015d6bb Cleanup configure 2008-05-17 22:06:03 -05:00
Jonathan Moore Liles e8571c1bc8 Cleanup makefile. 2008-05-17 21:57:00 -05:00
Jonathan Moore Liles 117d7cf9f7 Move helper functions out of 'configure' script. 2008-05-17 21:52:57 -05:00
Jonathan Moore Liles 60132b8595 Work on freewheel mode. 2008-05-17 20:45:56 -05:00
Jonathan Moore Liles 5cd2475609 Cleanup build. 2008-05-18 00:15:39 +00:00
Jonathan Moore Liles 2695f9eed5 Add some framework for freewheeling mode. 2008-05-17 16:37:41 -05:00
Jonathan Moore Liles 9261c3fea6 Improve the appearance of message dialogs. 2008-05-17 13:42:50 -05:00
Jonathan Moore Liles f920867579 Build mipmap peaks in capture IO thread, but don't wait on it to finish. May be incorrect. 2008-05-17 11:23:37 -05:00
Jonathan Moore Liles b57acca314 Fork for building peak mipmaps after recording. 2008-05-17 00:35:21 -05:00
Jonathan Moore Liles f4661611a0 Get stop frame right when finalizing regions. 2008-05-17 00:34:42 -05:00
Jonathan Moore Liles 91614d9aa1 Snap trims as well. 2008-05-17 00:14:26 -05:00
Jonathan Moore Liles 4422c354f7 Cleanup open/new behavior. 2008-05-16 23:34:44 -05:00
Jonathan Moore Liles 251d7f9267 Makefile cleanups. 2008-05-16 21:50:33 -05:00
Jonathan Moore Liles 24f935d957 Minor cleanup. 2008-05-16 21:21:44 -05:00
Jonathan Moore Liles 235993b7b3 Fix snap to widget bug. 2008-05-16 21:07:56 -05:00
Jonathan Moore Liles 21e82b64f6 Minor cleanup. 2008-05-16 20:55:43 -05:00
Jonathan Moore Liles 9f3cc2a2e0 Improve tick calculation? 2008-05-16 18:44:18 -05:00
Jonathan Moore Liles 65b6d544ad Don't fail in render_tempomap on the first beat of the first bar. 2008-05-16 18:44:08 -05:00
Jonathan Moore Liles f42b12d323 Fix typo in makefile. 2008-05-16 17:20:53 -05:00
Jonathan Moore Liles 7407f16149 Use old options as defaults when reconfiguring. 2008-05-16 16:38:07 -05:00
Jonathan Moore Liles 7075a9a2e1 Clean up make.conf format. 2008-05-16 16:06:15 -05:00
Jonathan Moore Liles ed23544065 Continue improving build system. 2008-05-16 15:52:10 -05:00
Jonathan Moore Liles 8443acf570 Improve the build/configure system. 2008-05-16 14:12:52 -05:00
Jonathan Moore Liles 8af768cb90 Add enabled() predicate to LASH_Client... 2008-05-15 20:01:56 -05:00
Jonathan Moore Liles 558cec0965 Move LASH poll timer into LASH.C. 2008-05-15 19:53:46 -05:00
Jonathan Moore Liles fabbd3e893 Add logos to pixmaps directory and use PNG at runtime rather than
including a huge XPM in the source.
2008-05-15 19:26:51 -05:00
Jonathan Moore Liles 79b16b56c9 Improve LASH support. 2008-05-14 23:23:16 -05:00
Jonathan Moore Liles 28bc3ff1c6 Minor cleanup. 2008-05-14 21:15:02 -05:00
Jonathan Moore Liles 825bb4c3e7 Don't die if render_tempomap() is called with an empty map. 2008-05-14 21:14:56 -05:00
Jonathan Moore Liles 71c75ff48a Continue integrating LASH support. 2008-05-14 20:10:49 -05:00
Jonathan Moore Liles 05ab03fb10 Add LASH_Client interface class. 2008-05-14 19:48:46 -05:00
Jonathan Moore Liles d6e8ec3c4a Make time points reset the beat count. 2008-05-14 18:47:28 -05:00
Jonathan Moore Liles 705482f72f Make time points editable etc.
Fix sorting of tempomap.
2008-05-14 17:36:23 -05:00
Jonathan Moore Liles b3d2cf94a1 Un-unify tempo and time sequences...
Add an update_tempomap() method to Timeline instead, which must be
called every time the time or tempo tracks are edited. This is perhaps as
ugly as the unified map was, but is at least a bit more compatible with
the possibility of moving all the meat of tempomapping into a library.
2008-05-14 16:50:31 -05:00
Jonathan Moore Liles bde6f2c557 Add time signature and tempo info to BBT clock. 2008-05-14 16:31:43 -05:00
Jonathan Moore Liles 577f0bd1d0 Improve tick calculation. 2008-05-14 16:31:42 -05:00
Jonathan Moore Liles 682645f2e1 Add (possibly bogus) timebase callback. 2008-05-14 16:31:42 -05:00
Jonathan Moore Liles b5c5a01fd9 Fix measure line drawing. 2008-05-14 16:31:07 -05:00
Jonathan Moore Liles 558430847c Fix beat and tick calcualtion. 2008-05-14 16:31:06 -05:00
Jonathan Moore Liles 1cd36adce8 Improve tempomap rendering. 2008-05-14 16:31:05 -05:00
Jonathan Moore Liles 4f52567504 Simplify and improve tempomap, measure line drawing and snapping. 2008-05-14 16:31:05 -05:00
Jonathan Moore Liles 974618863b Improve the measure line drawing routine. 2008-05-14 16:30:09 -05:00
Jonathan Moore Liles 62625f35f7 Improve drawing of unified tempomap. 2008-05-14 16:26:23 -05:00
Jonathan Moore Liles 02db2c1251 Include widget y() and h() in event_widget() test. 2008-05-14 16:26:21 -05:00
Jonathan Moore Liles a5a3e737bb Improve BBT clock display. 2008-05-13 16:40:18 -05:00
Jonathan Moore Liles 6dd66f328f Include tick ibn BBT info. 2008-05-13 16:38:13 -05:00
Jonathan Moore Liles 9bb119e0b5 Get BBT info right. 2008-05-13 16:16:14 -05:00
Jonathan Moore Liles d4d5c17e44 Work on actually rendering tempo map into BBT info. 2008-05-13 03:31:25 -05:00
Jonathan Moore Liles 30b4c1bb4b Try to be more accurate in drawing measure lines. 2008-05-12 23:38:36 -05:00
Jonathan Moore Liles 50897c6cd7 Clean up snap behavior. 2008-05-12 23:38:05 -05:00
Jonathan Moore Liles 71c4964174 Don't always draw waveforms inverted! 2008-05-12 22:06:07 -05:00
Jonathan Moore Liles f5db8ac7ad Fix order of Sequence_Point initialization. 2008-05-12 22:02:21 -05:00
Jonathan Moore Liles 8422915e87 Fix uninitialized member. 2008-05-12 22:00:35 -05:00
Jonathan Moore Liles 3e5c760c88 Oops. Fix control sequence playback broken by renmaing. 2008-05-12 21:43:12 -05:00
Jonathan Moore Liles 99795a4f56 Move range trimming math into Range class. 2008-05-12 11:23:55 -05:00
Jonathan Moore Liles f41f23c306 Oops. Fix draw_measure's use of renamed sequence widget properties. 2008-05-12 10:14:35 -05:00
Jonathan Moore Liles 4cb8fbd22d Get rid of cumulative error in Peaks::Streamer 2008-05-11 21:01:51 -05:00
Jonathan Moore Liles 354b3a9fc3 Position tempo point editor window inside the main window. 2008-05-11 20:16:58 -05:00
Jonathan Moore Liles f0704d7f90 Oops. Finalize peak capture in the right place! 2008-05-11 20:09:39 -05:00
Jonathan Moore Liles d7f020ee2e Add mutex to Audio_File objects to prevent read_source_peaks() and IO thread from conflicting. 2008-05-11 19:37:34 -05:00
Jonathan Moore Liles 9b8e7569e7 Make peakfile block scanning more robust. 2008-05-11 18:28:08 -05:00
Jonathan Moore Liles 50fa642321 Fix mipmapping for streamed peaks. 2008-05-11 17:48:19 -05:00
Jonathan Moore Liles 12d65acf25 Add quit message. 2008-05-11 12:19:01 -05:00
Jonathan Moore Liles 17790c13c1 Fix pending peaks timers. 2008-05-11 12:18:51 -05:00
Jonathan Moore Liles f12363340e Clean up Peaks.C 2008-05-11 09:57:53 -05:00
Jonathan Moore Liles d1a2f52352 Support optional mipmapping of peakfiles. Mipmap peaks for new captures. 2008-05-10 20:40:43 -05:00
Jonathan Moore Liles fc99144548 Work on making peak streaming work again. 2008-05-10 20:10:16 -05:00
Jonathan Moore Liles e27c0336fe Peak all peak cache levels together in a single peakfile. 2008-05-10 19:10:49 -05:00
Jonathan Moore Liles e2e2241715 Make peak streaming work again. 2008-05-10 13:19:55 -05:00
Jonathan Moore Liles 45a660d98a Treat peakfiles as a multilevel cache.
Always generated all levels when building peaks, instead of
trying to be clever about it.
2008-05-10 12:02:21 -05:00
Jonathan Moore Liles bff8d98078 Clean up a copy/assignment permissions for many classes. 2008-05-07 20:05:49 -05:00
Jonathan Moore Liles 9bf7183696 Make region duplication work again. 2008-05-07 19:25:12 -05:00
Jonathan Moore Liles edb9be37ab Clean up sequence widget copy constructors. 2008-05-07 19:04:47 -05:00
Jonathan Moore Liles 7f25ebe855 Get rid of a million and a half signed/unsigned expression warnings. 2008-05-07 18:19:48 -05:00
Jonathan Moore Liles 77621d9d77 Clean up sequence widget 'clone' functions. 2008-05-07 18:09:52 -05:00
Jonathan Moore Liles 9df497a50a Fixup tempo/time points, which were broken by recent renaming. 2008-05-07 17:55:01 -05:00
Jonathan Moore Liles e050332e36 Add shortcut to annotation region edit window. 2008-05-07 15:16:56 -05:00
Jonathan Moore Liles 6bb4a1d066 offset start end -> start offset length 2008-05-07 14:35:57 -05:00
Jonathan Moore Liles 8a048e6ef2 Oops. Forgot one. 2008-05-07 11:54:41 -05:00
Jonathan Moore Liles ff9f812a04 More renames. 2008-05-07 11:42:31 -05:00
Jonathan Moore Liles a57db305f2 Symbol name cleanup. 2008-05-07 11:18:57 -05:00
Jonathan Moore Liles 9d498d7eca Go back to using long names for properties. 2008-05-07 10:28:57 -05:00
Jonathan Moore Liles 452e1df554 Provide shortcuts in compaction confirmation dialog. 2008-05-07 10:20:13 -05:00
Jonathan Moore Liles 1edc236960 Journaling fixes. 2008-05-07 10:19:55 -05:00
Jonathan Moore Liles aca45eceab Add .gitignore. 2008-05-07 08:06:13 -05:00
Jonathan Moore Liles a81b174b90 Add additional version to project info. 2008-05-06 23:42:06 -05:00
Jonathan Moore Liles 9ed5394e5d Clean up some event handlig breakage from sequence region split. 2008-05-06 22:00:32 -05:00
Jonathan Moore Liles 9aa52f3e18 Fix memory leaks reported by valgrind. 2008-05-06 21:42:36 -05:00
Jonathan Moore Liles f927e39681 Handle top-level path pop. 2008-05-06 21:01:24 -05:00
Jonathan Moore Liles adf0ca22f3 Hack to make annotation pack visable. 2008-05-06 21:01:03 -05:00
Jonathan Moore Liles 42e0e380bd Destroy sequence contents in sequence destructor.
Destroy loggables in correct order.
2008-05-06 21:00:36 -05:00
Jonathan Moore Liles 1318ba3c3a Also deregister control ports during track destruction. 2008-05-06 20:03:08 -05:00
Jonathan Moore Liles c0803df843 Close project before creating new one. 2008-05-06 19:58:34 -05:00
Jonathan Moore Liles 767aa44b7c Save version and sample rate with project. 2008-05-06 19:41:07 -05:00
Jonathan Moore Liles 281607550b Oops. Actually ignore modifiers for timeline keys. 2008-05-06 18:38:55 -05:00
Jonathan Moore Liles c413255e4a s/Session/Project/ig 2008-05-06 18:33:24 -05:00
Jonathan Moore Liles 45aeb9ad89 Fix menu settings loader when operating at close to depth 0. 2008-05-06 15:35:08 -05:00
Jonathan Moore Liles 56ce6caed3 Save and load per session timeline settings.
Always select a default capture format.
2008-05-06 15:15:12 -05:00
Jonathan Moore Liles ed2e8e3f69 Only dump one top-level submenu. 2008-05-06 13:10:22 -05:00
Jonathan Moore Liles 11e11d97b2 Always terminate escape return string. 2008-05-06 00:34:46 -05:00
Jonathan Moore Liles a373535c75 Clean up some messages. 2008-05-05 23:39:31 -05:00
Jonathan Moore Liles 31e40639d2 Update menubar entires to reflect session state. 2008-05-05 23:33:41 -05:00
Jonathan Moore Liles 2881479cc2 Fix invalid read found by valgrind. 2008-05-05 23:25:05 -05:00
Jonathan Moore Liles 614f716726 Activate Open item in session menu. 2008-05-05 22:50:57 -05:00
Jonathan Moore Liles 4cb087c81a Properly free ports at Track destruction. 2008-05-05 22:24:43 -05:00
Jonathan Moore Liles b3c3a3956b Use stricter shortcut for timeline context menu. 2008-05-05 22:00:30 -05:00
Jonathan Moore Liles f9d93f4307 Small hack to fix one-pixel size difference when there are no annotation tracks. 2008-05-05 21:56:26 -05:00
Jonathan Moore Liles 8677b76201 Cleanup. 2008-05-05 20:04:48 -05:00
Jonathan Moore Liles 982eed82e4 Don't begin a drag when annotations are edited! 2008-05-05 19:01:01 -05:00
Jonathan Moore Liles 4947278da5 Fix scrolling positon consistency problem. 2008-05-05 18:49:18 -05:00
Jonathan Moore Liles 89d64f66e4 Try to fix some issues with journal replay and compaction. 2008-05-05 18:24:21 -05:00
Jonathan Moore Liles 03cd2a1c45 Fix error in order of destruction for annotation_*. 2008-05-05 14:50:06 -05:00
Jonathan Moore Liles 8b1dea33a6 Only draw first line of annotation text on timeline view. 2008-05-05 13:37:54 -05:00
Jonathan Moore Liles 1025201398 Escape/unescape newlines in string parameters of journal messages. 2008-05-05 13:35:04 -05:00
Jonathan Moore Liles 35bb316a02 Use text edit window widget for annotation region. 2008-05-05 12:19:01 -05:00
Jonathan Moore Liles 5985f12d11 Add Fl_Text_Edit_Window widget. 2008-05-05 12:18:02 -05:00
Jonathan Moore Liles 03a6e80a48 Add omitted annoation region source files! 2008-05-05 11:24:54 -05:00
Jonathan Moore Liles 2824882d47 Fix fluid file build problem. 2008-05-05 00:42:26 -05:00
Jonathan Moore Liles c3a20870f7 Big fix for loggability which was broken by the previous attempt at making Time and Tempo sequences unlogged. 2008-05-05 00:29:39 -05:00
Jonathan Moore Liles d510b21f7f Allow Annotation_Points and Annotation_Regions to co-exist on the same sequence. 2008-05-04 21:05:20 -05:00
Jonathan Moore Liles 875ff62c8a Split Region into Audio_Region and Sequence_Region base class. 2008-05-04 19:56:07 -05:00
Jonathan Moore Liles 33d78a726a Rename Region class to Audio_Region 2008-05-04 19:04:20 -05:00
Jonathan Moore Liles 42a1983116 Allow each track to contain multiple Annotation_Sequences. 2008-05-04 18:52:24 -05:00
Jonathan Moore Liles f16bbb1ab6 Rename Ruler_* to Annotation_* 2008-05-04 17:32:08 -05:00
Jonathan Moore Liles f34496f703 Keep VERSION in Makefile 2008-05-04 17:20:38 -05:00
Jonathan Moore Liles 727b256b4b Output journal snapshot as a single transaction. 2008-05-04 02:35:35 -05:00
Jonathan Moore Liles 594f711533 Make new session dialog actually work. 2008-05-04 02:32:54 -05:00
Jonathan Moore Liles 5ca4efe837 Break session loading/creation code out into its own file. 2008-05-04 02:10:15 -05:00
Jonathan Moore Liles 25aea13004 Improve new session dialog. 2008-05-03 20:28:36 -05:00
Jonathan Moore Liles aef0d1c6b1 Minor cleanup. 2008-05-03 18:44:28 -05:00
Jonathan Moore Liles 951c1ca23b Hack to make Time, Tempo, and Ruler sequences unjournaled to simplify session teardown. 2008-05-03 18:25:59 -05:00
Jonathan Moore Liles af523475c4 Work on making system reset possible. 2008-05-03 17:50:32 -05:00
Jonathan Moore Liles 5f4fd49867 Minor cleanups. 2008-05-03 11:46:48 -05:00
Jonathan Moore Liles 4feb8d6a9a Bring debugging messages over from Non-Sequencer.
Begin to support session directories.

Show session name in TLE.
2008-05-02 23:44:48 -05:00
Jonathan Moore Liles 4b51c8f82a Make zoom follow mouse. 2008-05-02 21:17:34 -05:00
Jonathan Moore Liles 6bb756d4dc Adapt snapping code to use the new measure line rendering code. 2008-05-02 20:48:16 -05:00
Jonathan Moore Liles 0645c0ebbf Make zoom-fit menu item work. 2008-05-02 18:03:44 -05:00
Jonathan Moore Liles 0da462b62d Make zoom to time work again. 2008-05-02 17:34:43 -05:00
Jonathan Moore Liles 61f3d56611 Allow the user to add/edit tempo points. 2008-05-02 15:02:24 -05:00
Jonathan Moore Liles 595100be8e Give each sequence type its own default cursor.
Use a cross-hair cursor for control sequences.
2008-05-02 06:42:50 -05:00
Jonathan Moore Liles 013dbe26f9 Don't popup timeline menu on right-click if any modifiers are active. 2008-05-02 01:01:35 -05:00
Jonathan Moore Liles c8bb330e8e Try to clean up region dragging. 2008-05-02 00:52:50 -05:00
Jonathan Moore Liles 0f402d0851 Avoid unnecessary copying in Record_DS as well. 2008-05-01 23:12:51 -05:00
Jonathan Moore Liles 14a891e462 Attempt to get rid of missing samples in playback for good. 2008-05-01 21:19:12 -05:00
Jonathan Moore Liles ea057edddc Quiet uninitialized value warning from valgrind. 2008-05-01 20:24:45 -05:00
Jonathan Moore Liles 900bfdebb0 Fix invalid read reported by valgrind. 2008-05-01 20:21:35 -05:00
Jonathan Moore Liles f17dac7c87 Fix idexing errors in playback ringbuffer stuffing. 2008-05-01 19:42:01 -05:00
Jonathan Moore Liles bdd9dc56e4 Try to get captures to begin and end on the proper frame. 2008-05-01 18:35:46 -05:00
Jonathan Moore Liles 68f924ab1b Add more xruns info to the GUI. 2008-05-01 06:35:42 -05:00
Jonathan Moore Liles 1b51531bc5 Check for termination status AFTER awaking up, rather than BEFORE going to sleep. 2008-05-01 06:35:11 -05:00
Jonathan Moore Liles 821a3feedc Quit using FLTK's weird DND system for inter-track drags. 2008-05-01 04:47:37 -05:00
Jonathan Moore Liles 84a2bdcb17 Switch to single makefile. 2008-05-01 03:13:40 -05:00
Jonathan Moore Liles 9814d34ac6 Make region normalization possible again. 2008-05-01 02:13:58 -05:00
Jonathan Moore Liles aba6910629 Make playhead centering optional and disable it while recording. 2008-05-01 01:47:49 -05:00
Jonathan Moore Liles 84af307881 Move audio specific sequence code into Audio_Sequence class. 2008-05-01 01:31:33 -05:00
Jonathan Moore Liles 7a1fb271d4 Always show selected control points. 2008-05-01 00:29:46 -05:00
Jonathan Moore Liles 01fa14f04c Chnage the way control points are drawn. 2008-05-01 00:26:57 -05:00
Jonathan Moore Liles 8e791e2cd9 Improve the way Sequence_Points are drawn. 2008-04-30 23:24:20 -05:00
Jonathan Moore Liles 2bec4b16f1 Enhance the way sequence widget labels are drawn. 2008-04-30 19:57:11 -05:00
Jonathan Moore Liles 80005dcf89 Enhance the way sequence points are drawn. 2008-04-30 19:38:49 -05:00
Jonathan Moore Liles 34400df589 Attempt to draw measure lines with a more efficient incremental algorithm. 2008-04-30 19:24:47 -05:00
Jonathan Moore Liles 0af8d7e124 Try to avoid excessive drawing. 2008-04-30 01:40:33 -05:00
Jonathan Moore Liles 323a913cf1 Minor adjustment to scrolling. 2008-04-30 01:17:07 -05:00
Jonathan Moore Liles e7ab9a3727 Fix problem interaction between waveform outlines and scrolling. 2008-04-30 01:09:50 -05:00
Jonathan Moore Liles 1b5cac563b Make extra disk buffering optional. 2008-04-29 23:42:28 -05:00
Jonathan Moore Liles 4756fe3361 Oops. Create new captures with the right samplerate! 2008-04-29 23:29:09 -05:00
Jonathan Moore Liles f596d205db Read from disk in larger chunks. 2008-04-29 23:15:58 -05:00
Jonathan Moore Liles 7793863d46 Output silence when stopped. 2008-04-29 21:46:07 -05:00
Jonathan Moore Liles 7c516615d8 Don't automatically create a control track for each new track. 2008-04-29 20:12:35 -05:00
Jonathan Moore Liles 98afd445ed Add "Follow Playhead" option. 2008-04-29 20:08:49 -05:00
Jonathan Moore Liles b307642224 Incrementally redraw as peaks become available. 2008-04-29 19:38:28 -05:00
Jonathan Moore Liles 95b7fab478 Fix capture alignment problem. 2008-04-29 19:07:14 -05:00
Jonathan Moore Liles c99b2f1424 Try harder to avoid redrawing capture regions. 2008-04-29 18:48:11 -05:00
Jonathan Moore Liles 981f92bc69 Don't forget to initialize xrun count. 2008-04-29 16:18:47 -05:00
Jonathan Moore Liles 707e898d36 Add Select None option to the GUI. 2008-04-29 16:16:09 -05:00
Jonathan Moore Liles 5293eae6d9 Draw selected control points in selection color. 2008-04-29 15:57:52 -05:00
Jonathan Moore Liles 458bb7cc05 Improve selection movement for control points. 2008-04-29 15:54:41 -05:00
Jonathan Moore Liles c464c73ab9 Improve the way sequence widgets are selected. 2008-04-29 15:47:03 -05:00
Jonathan Moore Liles 221e66d91a Don't bother interpolating for disconnected control tracks. 2008-04-29 13:30:54 -05:00
Jonathan Moore Liles 7452987e05 Oops. Fix recursive typo in xrun callback. 2008-04-29 12:37:40 -05:00
Jonathan Moore Liles 55e1c3546f Fix a small problem with track header resizing. 2008-04-29 12:35:45 -05:00
Jonathan Moore Liles a213dd2c66 Add xrun display to GUI. 2008-04-29 12:18:27 -05:00
Jonathan Moore Liles 1fae0b89d7 Optimize control point interpolation. 2008-04-28 21:33:35 -05:00
Jonathan Moore Liles f168b90e07 Play with curve interpolation. 2008-04-28 20:06:45 -05:00
Jonathan Moore Liles 311daf498c Oops. Can't pass a pointer to an element of std::vector! 2008-04-28 14:04:16 -05:00
Jonathan Moore Liles 11f420a1a4 Allow renaming of control sequences. 2008-04-28 13:17:46 -05:00
Jonathan Moore Liles 95f8a8905a Fix errors found by valgrind. 2008-04-28 11:48:35 -05:00
Jonathan Moore Liles e637da4b77 Attempt to create control output ports properly. 2008-04-28 11:19:25 -05:00
Jonathan Moore Liles a77e7a708c Actually generate CV output for control sequences. 2008-04-28 09:20:17 -05:00
Jonathan Moore Liles 4af2a85cc7 Don't eat all keys in region input handler. 2008-04-28 03:33:22 -05:00
Jonathan Moore Liles 0eb8babb3e Fix interaction between shortcut handling and multiple undo. 2008-04-28 03:29:59 -05:00
Jonathan Moore Liles 21e8fab30f Add GPL header. 2008-04-28 01:34:33 -05:00
Jonathan Moore Liles 9f95f2b910 Get vertical scrolling right. 2008-04-28 00:11:47 -05:00
Jonathan Moore Liles f7514d2fcf Redraw timeline background properly when scrolling. 2008-04-27 23:42:05 -05:00
Jonathan Moore Liles 5a4cb046d0 Refine transport controls. 2008-04-27 16:08:30 -05:00
Jonathan Moore Liles 6bcadabe8d Clean up logic in control sequence display options. 2008-04-27 14:37:52 -05:00
Jonathan Moore Liles 193c24bd37 Add option for magnetic snapping. 2008-04-27 13:56:20 -05:00
Jonathan Moore Liles 96051065db Continue cleaning up scrolling issues. 2008-04-27 13:44:20 -05:00
Jonathan Moore Liles d3ac3b5d5a Minor opt. 2008-04-27 11:01:55 -05:00
Jonathan Moore Liles 146126f2af Enforce power of two zoom levels. 2008-04-27 10:45:49 -05:00
Jonathan Moore Liles fb5f111167 Clean up zooming/horizontal scrolling. 2008-04-27 08:37:50 -05:00
Jonathan Moore Liles bbc4376ee2 Hack a fix for drag scrolling. 2008-04-27 07:34:33 -05:00
Jonathan Moore Liles ae9e52ac77 Minor cosmetic. 2008-04-27 07:04:56 -05:00
Jonathan Moore Liles ad756bc1b2 Don't fake sample rate. 2008-04-27 07:04:37 -05:00
Jonathan Moore Liles 46e7378cb4 Use the background color for sequences. 2008-04-27 05:41:53 -05:00
Jonathan Moore Liles 8e8a690883 Draw inactive boxes properly. 2008-04-27 05:41:30 -05:00
Jonathan Moore Liles 28d1b4754b Minor costmetic cleanup. 2008-04-27 05:33:26 -05:00
Jonathan Moore Liles d7b8ecc591 Try to improve appearance with new 'crystal' boxtypes. 2008-04-27 05:18:03 -05:00
Jonathan Moore Liles 63ce948a8e Blend region color against track base. 2008-04-27 02:24:13 -05:00
Jonathan Moore Liles acc1283e31 Fix exectution order in timeline redraw.
This fixes the issue where scrolling with the mouse wheel while
the cursor was over a sequence widget would cause the widget
to a appear to jump.
2008-04-27 02:18:03 -05:00
Jonathan Moore Liles 78175d1d64 Dim some currently unimplemented menu items. 2008-04-27 02:10:37 -05:00
Jonathan Moore Liles 3b4dae6049 Add about dialog. 2008-04-27 02:07:16 -05:00
Jonathan Moore Liles 326192c214 Fix right-aligned sequence widget label drawing for scrolling. 2008-04-27 00:59:07 -05:00
Jonathan Moore Liles afa0a690bc Work on cleaning up scrolling bounardy conditions (not done). 2008-04-27 00:25:46 -05:00
Jonathan Moore Liles 6d2521312e Fix math error in fade application. 2008-04-27 00:25:34 -05:00
Jonathan Moore Liles 754aa55af4 Clean up some focus and display issues. 2008-04-26 22:50:58 -05:00
Jonathan Moore Liles 82ada52b71 Fix error in quote parsing of log entries. 2008-04-26 21:45:24 -05:00
Jonathan Moore Liles 8e1bc189e6 Make snap type configurable. 2008-04-26 11:07:43 -05:00
Jonathan Moore Liles 07b193c9c5 Make mark labels editable. 2008-04-26 07:37:25 -05:00
Jonathan Moore Liles c4812d0ade Don't forget to journal random color picked at track creation. 2008-04-26 07:07:39 -05:00
Jonathan Moore Liles 55a1e60484 Add marks to ruler. 2008-04-26 06:58:50 -05:00
Jonathan Moore Liles 2ccae56fb1 Correct indexing error in peakfile reader. 2008-04-26 06:20:02 -05:00
Jonathan Moore Liles 24bbc24e16 Replace lost return statement. 2008-04-26 05:24:09 -05:00
Jonathan Moore Liles 0f162df41f Hack fix for misresizing of timeline scrollbars. 2008-04-26 05:17:47 -05:00
Jonathan Moore Liles 155b9464c2 Work around the fact that Fl::get_system_colors() only works once. 2008-04-26 05:11:19 -05:00
Jonathan Moore Liles d178a08152 Refine track colors. 2008-04-26 04:01:54 -05:00
Jonathan Moore Liles 1a89c40d7b Permit user to pick track color. Journal track color. 2008-04-26 03:42:44 -05:00
Jonathan Moore Liles 7e36e037dc Fix options load/save which was broken by capture format menu. 2008-04-26 03:42:30 -05:00
Jonathan Moore Liles d426aac08d Avoid opening libsndfile sources in RDWR mode (doesn't work with FLAC) 2008-04-26 01:33:44 -05:00
Jonathan Moore Liles 7980d4b147 Lock timeline when deleting widgets... 2008-04-26 01:33:00 -05:00
Jonathan Moore Liles a32f8ca17a Allow the user to choose capture format. 2008-04-26 00:33:04 -05:00
Jonathan Moore Liles 3191afd3da Add script to remove unused sources from a sesssion. 2008-04-25 21:56:03 -05:00
Jonathan Moore Liles 783ba38120 Begin to make tracks removable. 2008-04-25 16:35:51 -05:00
Jonathan Moore Liles 7f1055e845 Don't redraw capture regions so often. 2008-04-25 03:14:13 -05:00
Jonathan Moore Liles 6b97c912eb Fig logging for captures. 2008-04-25 02:35:55 -05:00
Jonathan Moore Liles ef0851b426 Draw capture in red. 2008-04-25 02:07:18 -05:00
Jonathan Moore Liles 4bee9a7053 Darken inactive objects on the timeline. 2008-04-25 01:58:08 -05:00
Jonathan Moore Liles 63ebacb872 Massive consting. 2008-04-25 01:34:08 -05:00
Jonathan Moore Liles d87b35c4e0 Make mute and solo buttons work. 2008-04-25 00:15:08 -05:00
Jonathan Moore Liles 6b40c32ce8 Connect secondary clock to playhead. 2008-04-24 23:36:02 -05:00
Jonathan Moore Liles c4288aebe6 Make control points appear when mouse passes over control sequence. 2008-04-24 22:29:28 -05:00
Jonathan Moore Liles 79d60d7ea6 Automatically save/restore options. 2008-04-24 22:15:17 -05:00
Jonathan Moore Liles 0d56c07a1d Fix off-by-one in sequence drawing. 2008-04-24 21:52:00 -05:00
Jonathan Moore Liles bb2cd56561 Make measure line drawing optional. 2008-04-24 21:48:44 -05:00
Jonathan Moore Liles 031f279eb2 Make menu loader work for radio buttons. 2008-04-24 21:37:20 -05:00
Jonathan Moore Liles fbbd5e1582 Make settings loader work. 2008-04-24 20:50:27 -05:00
Jonathan Moore Liles 050a336abb Work on STD parser for settings loading. 2008-04-24 18:45:50 -05:00
Jonathan Moore Liles f4a35bd519 Clean up menu dumping code. 2008-04-24 16:09:17 -05:00
Jonathan Moore Liles e720a06ad0 Work on saving/loading of settings. 2008-04-24 15:52:30 -05:00
Jonathan Moore Liles 80d2466c6f Add more clock types. 2008-04-24 02:27:49 -05:00
Jonathan Moore Liles dfe953c6df Don't attempt to redraw a parent that doesn't exist yet. 2008-04-24 02:08:23 -05:00
Jonathan Moore Liles ffd4dc26a8 Add support for additional cursors. 2008-04-23 21:23:29 -05:00
Jonathan Moore Liles b609a6f727 Clean up main layout.. 2008-04-23 21:10:20 -05:00
Jonathan Moore Liles 05ebbc073b Clean up compaction code. 2008-04-23 19:33:44 -05:00
Jonathan Moore Liles 2e7fab494a Actiavte compaction menu option. 2008-04-23 17:29:14 -05:00
Jonathan Moore Liles ba07b64e3d Try to straighten out the sequence label issue. 2008-04-23 16:00:51 -05:00
Jonathan Moore Liles 2dd18e842f Activate a number of entries in the menu. 2008-04-23 15:56:33 -05:00
Jonathan Moore Liles e97435d3e7 Always keep Sequence_Points sorted. 2008-04-23 11:02:42 -05:00
Jonathan Moore Liles 173aeeae82 Refine control sequence drawing code. 2008-04-23 10:41:35 -05:00
Jonathan Moore Liles 90e263719a Fix ruler resizing. 2008-04-23 01:33:21 -05:00
Jonathan Moore Liles a7483f7c2d Refine the playhead. 2008-04-23 01:01:32 -05:00
Jonathan Moore Liles 8622209fe1 Actually update buffer and dsp percentages in GUI. 2008-04-23 00:35:49 -05:00
Jonathan Moore Liles 6cc26446b6 Show hundredths of seconds in HMS clock. 2008-04-22 23:54:03 -05:00
Jonathan Moore Liles 73282bbf4d Fix printf format in clock code. 2008-04-22 23:39:08 -05:00
Jonathan Moore Liles fd9667ea25 Give Clock the ability to update itself. 2008-04-22 23:27:55 -05:00
Jonathan Moore Liles db5febb64e Don't do anything if nothing was picked from track context menu. 2008-04-22 23:18:00 -05:00
Jonathan Moore Liles f8ce7eab64 Clean up some edge conditions with sequence drawing/scrolling. 2008-04-22 22:40:31 -05:00
Jonathan Moore Liles d85cc1c61c Work on adding the rest of the GUI. 2008-04-22 21:53:46 -05:00
Jonathan Moore Liles a826f1533e Add 'end' button to transport group. 2008-04-22 17:38:59 -05:00
Jonathan Moore Liles 8aa8005782 Refine clock. 2008-04-22 17:07:25 -05:00
Jonathan Moore Liles ad1462d61d Add clock widget. 2008-04-22 16:23:23 -05:00
Jonathan Moore Liles ce2b1e02ed Add transport controls to the GUI. 2008-04-22 12:24:30 -05:00
Jonathan Moore Liles 0a6a6b4a0a Add bindings to stop, start, and zero transport. 2008-04-21 21:15:32 -05:00
Jonathan Moore Liles 2a7f14870c Allow moving the playhead to the mouse position with 'p' press. 2008-04-21 20:14:43 -05:00
Jonathan Moore Liles 78a3399260 Add draw with grid option to control sequence class. 2008-04-21 19:45:17 -05:00
Jonathan Moore Liles 1bfdd8e568 Add gradient option for control sequence drawing. 2008-04-21 18:45:54 -05:00
Jonathan Moore Liles c315194435 Make control+right-click deletion work for regions again. 2008-04-21 17:39:11 -05:00
Jonathan Moore Liles b199cfadd8 Allow track channel configuration to be adjusted in the GUI. 2008-04-21 15:24:08 -05:00
Jonathan Moore Liles c4532c70d7 Fix (I think) a math error in fade out application. 2008-04-21 14:16:12 -05:00
Jonathan Moore Liles b0dc6b0dc8 Add a scope locker. 2008-04-21 13:53:02 -05:00
Jonathan Moore Liles 8a0da04a4b Restart diskstreams when track I/O is reconfigured. 2008-04-21 13:34:15 -05:00
Jonathan Moore Liles 9ce8701283 Actually rename ports when appropriate. Journal track I/O configuration. 2008-04-21 13:01:03 -05:00
Jonathan Moore Liles 604bf2861a Make fade-in/outs journaled. 2008-04-21 10:31:25 -05:00
Jonathan Moore Liles f05f6026de Add Fl_Sometimes_Input widget and use it for Track names. 2008-04-21 09:57:30 -05:00
Jonathan Moore Liles 543d9e4432 Work on restorability of tracks. 2008-04-20 22:05:25 -05:00
Jonathan Moore Liles 4160721c65 Avoid snapshotting uncreatable loggable classes. 2008-04-20 19:45:58 -05:00
Jonathan Moore Liles 8a927c8876 Cleanups. 2008-04-20 19:28:59 -05:00
Jonathan Moore Liles 212dc3e3ea Fix journaling for control points. 2008-04-20 19:28:50 -05:00
Jonathan Moore Liles 66bd927231 Fix typo in region state getter. 2008-04-20 18:22:24 -05:00
Jonathan Moore Liles 357052d639 Add omitted file Fl_Arc_Dial.C 2008-04-20 16:49:21 -05:00
Jonathan Moore Liles 8aa07ba9df Add ommited file types.h. 2008-04-20 16:47:53 -05:00
Jonathan Moore Liles 23aeefb5d6 Try to get session loading up and running. 2008-04-20 16:46:47 -05:00
Jonathan Moore Liles 5f662f3913 Get undo working again. 2008-04-20 11:42:26 -05:00
Jonathan Moore Liles 300c6c3726 Massively rework loggable interface. 2008-04-19 21:15:54 -05:00
Jonathan Moore Liles f3e781762c Allow IO thread to be started/stopped more than once. 2008-04-19 14:24:26 -05:00
Jonathan Moore Liles d3fcb162f3 Give each capture a unique name. 2008-04-19 14:21:49 -05:00
Jonathan Moore Liles 77ff82e9f4 Make the playhead more visible. 2008-04-19 00:30:41 -05:00
Jonathan Moore Liles 77ac8a2c8e Create track ports with the proper names. 2008-04-19 00:26:43 -05:00
Jonathan Moore Liles ed813d0c03 Name newly created tracks. 2008-04-19 00:09:42 -05:00
Jonathan Moore Liles e54f63e605 Massive renames. 2008-04-18 23:22:49 -05:00
Jonathan Moore Liles feb777a050 Get rid of useless Region_Base class. 2008-04-18 21:29:15 -05:00
Jonathan Moore Liles d316e8772c Permit adding of tracks from GUI. 2008-04-18 21:26:27 -05:00
Jonathan Moore Liles 793fb05176 Work on making journal replay at startup. 2008-04-18 20:05:57 -05:00
Jonathan Moore Liles 714fc8766c Crudely begin to support drawing of timecodes on ruler. 2008-04-18 15:18:07 -05:00
Jonathan Moore Liles 24fe463579 Move region writing code into region class. 2008-04-17 22:44:19 -05:00
Jonathan Moore Liles e7c2ac9ecd Begin to support waveform display during capture. 2008-04-17 19:26:46 -05:00
Jonathan Moore Liles ce69a3b8f0 Cleanup and begin keeping chunksize in peakfile name. 2008-04-17 17:12:38 -05:00
Jonathan Moore Liles e7b893ca24 Get rid of peakfile headers... Who needs 'em. 2008-04-17 15:37:38 -05:00
Jonathan Moore Liles 99e93c575e Stream peaks to disk during capture. 2008-04-17 14:19:41 -05:00
Jonathan Moore Liles ed9a1aaf5b Optimize waveform drawing some. 2008-04-17 12:04:55 -05:00
Jonathan Moore Liles e86123de78 Improve peak reading efficiency. 2008-04-17 11:30:20 -05:00
Jonathan Moore Liles 1b5459fe2b Don't waste time deinterleaving peaks. 2008-04-17 11:12:22 -05:00
Jonathan Moore Liles 9cbc39addd Only fork for peak building when necessary. 2008-04-17 10:59:02 -05:00
Jonathan Moore Liles c8b872ae41 Don't attempt to draw more peaks than were actually read! 2008-04-17 10:45:36 -05:00
Jonathan Moore Liles 4543d48c41 Fix a number of problems with region drawing. 2008-04-17 10:35:20 -05:00
Jonathan Moore Liles 55b2907aec WIP 2008-04-17 10:19:04 -05:00
Jonathan Moore Liles 3b40b8a093 Fix some bugs in peak reading/drawing. 2008-04-17 08:27:35 -05:00
Jonathan Moore Liles 642d6d48ea Handle empty peak file as error. 2008-04-16 13:23:34 -05:00
Jonathan Moore Liles 72a203d18b Fix a number of errors turned up by valgrind. Import new captures. 2008-04-16 13:08:00 -05:00
Jonathan Moore Liles 4684094f6f Work on improving recording. 2008-04-16 10:35:25 -05:00
Jonathan Moore Liles fbb4b17dca Split Disk_Stream into a base class and Playback_DS and Record_DS. 2008-04-16 06:30:04 -05:00
Jonathan Moore Liles fc2ed291aa Optimize fade calculations. 2008-04-16 00:50:32 -05:00
Jonathan Moore Liles 14330f607d Get rid of unnecessary copying in disk stream. 2008-04-16 00:03:10 -05:00
Jonathan Moore Liles 928780a820 Move some DSPish code into functions in dsp.c 2008-04-15 19:47:51 -05:00
Jonathan Moore Liles 424b68f044 Minor cleanup. 2008-04-15 19:08:48 -05:00
Jonathan Moore Liles 9c2329eb78 Clean up fade drawing issue. 2008-04-15 09:01:21 -05:00
Jonathan Moore Liles b3a3be6e55 Add context popup menu for regions to set fade-in/out curve. 2008-04-15 06:44:03 -05:00
Jonathan Moore Liles 81561d6304 Minor cleanup. 2008-04-15 03:53:36 -05:00
Jonathan Moore Liles d101d5e905 Allow setting of fade in/out durations from GUI. 2008-04-15 02:13:40 -05:00
Jonathan Moore Liles a10d86ecfd Allow timeline widget to take keyboard focus and pass keyboard events on to children. 2008-04-15 02:13:22 -05:00
Jonathan Moore Liles 7e28987f99 Add error message for failed imports. 2008-04-14 21:06:35 -05:00
Jonathan Moore Liles 6f0af6bf3f Make fades render better for crossfades. 2008-04-14 20:27:27 -05:00
Jonathan Moore Liles 30c19870d6 Clean up fade drawing code. Draw fade outs also. 2008-04-14 20:08:06 -05:00
Jonathan Moore Liles 19de318aae Work on cleaning up the way fades are displayed. 2008-04-14 18:50:01 -05:00
Jonathan Moore Liles 26a8067d42 Draw fade shapes on box layer and adjust waveform display to match. 2008-04-14 05:00:08 -05:00
Jonathan Moore Liles 8e02b99192 Cut down on the number of verticies drawn for fades 2008-04-14 04:07:18 -05:00
Jonathan Moore Liles af0e75c23c Work on graphical display of fades. 2008-04-14 03:55:22 -05:00
Jonathan Moore Liles 56b06c267a Fix a few delete's that should have been delete[]'s. 2008-04-14 03:55:03 -05:00
Jonathan Moore Liles 91abbf543d Prepare to support generalized fade-in/outs. 2008-04-14 00:12:05 -05:00
Jonathan Moore Liles ee576b7ff7 Use linear curve for declicking fades 2008-04-13 23:30:40 -05:00
Jonathan Moore Liles eab284dddb Minor cleanup. 2008-04-13 23:11:48 -05:00
Jonathan Moore Liles f78ea62e70 Implement baics for declicking. 2008-04-13 23:01:08 -05:00
Jonathan Moore Liles ebc3f8db92 Don't redraw playhead more than necessary. 2008-04-12 19:02:58 -05:00
Jonathan Moore Liles ab20e03eb2 Make mutlti-region playback and overlapped region playback work. 2008-04-12 17:55:25 -05:00
Jonathan Moore Liles fb94e119c4 Fix indexing error in deinterleave code. 2008-04-12 16:50:23 -05:00
Jonathan Moore Liles 61c5707d01 Improve bounaries of playhead drawing. 2008-04-12 16:47:33 -05:00
Jonathan Moore Liles afe06f59e9 Add playhead to the GUI. 2008-04-12 14:50:36 -05:00
Jonathan Moore Liles 904daf8fe4 Work on making diskstreams follow the transport. 2008-04-12 14:17:01 -05:00
Jonathan Moore Liles 3d2580dd64 Finally get rid of that distortion issue. 2008-04-09 22:44:02 -05:00
Jonathan Moore Liles ebb86a1e62 Fiddle with playback... 2008-04-08 21:20:44 -05:00
Jonathan Moore Liles 7f43a99030 Actually get playback through JACK, kind of. 2008-04-08 19:05:15 -05:00
Jonathan Moore Liles 0dff4be584 Continue working on engine functionality. 2008-04-08 15:06:38 -05:00
Jonathan Moore Liles 2a26aa85ac Actually make it compile again. 2008-04-07 05:00:16 -05:00
Jonathan Moore Liles 946b8f8e93 Continue working on playback. 2008-04-07 03:17:52 -05:00
Jonathan Moore Liles 2ddaf17bb0 Cleanup. 2008-04-07 03:00:33 -05:00
Jonathan Moore Liles 30f33a3484 Work on adding playback capability. 2008-04-07 02:29:52 -05:00
Jonathan Moore Liles 6a6c91250e Try a different way of avoiding continuous-variation on drag etc. 2008-04-02 02:19:48 -05:00
Jonathan Moore Liles 3d74d59d4a Play with push stuff. 2008-04-02 01:49:24 -05:00
Jonathan Moore Liles 16772b7e3b WIP 2008-03-31 05:00:47 -05:00
Jonathan Moore Liles 0207dc9507 Ditch the whole separate Engine idea and move everything back to Timeline. 2008-03-28 00:19:26 -05:00
Jonathan Moore Liles db29b21d2c Work on moving journaling into engine process. 2008-03-27 22:45:00 -05:00
Jonathan Moore Liles 6abd18c4ca Minor cleanup. 2008-03-26 21:56:11 -05:00
Jonathan Moore Liles 22030e41b6 Improve peak reading efficiency. 2008-03-26 19:46:38 -05:00
Jonathan Moore Liles 48bcd7ed98 Continue switching over to peak server system. 2008-03-26 19:31:57 -05:00
Jonathan Moore Liles 95a2896d53 Work on peak reader. 2008-03-26 18:21:11 -05:00
Jonathan Moore Liles 2abf28095c Don't read more peaks than needed for waveform. 2008-03-26 12:53:36 -05:00
Jonathan Moore Liles b0d5b60a6f Work on switching Timeline Editor over to use the Peak Server. 2008-03-26 03:33:14 -05:00
Jonathan Moore Liles 0b67f85b60 Add some error handling to Peak_Server. 2008-03-25 17:50:12 -05:00
Jonathan Moore Liles 87babc7da8 Add omitted file. 2008-03-25 16:18:24 -05:00
Jonathan Moore Liles d2478e3161 Make peak server work. 2008-03-25 16:18:14 -05:00
Jonathan Moore Liles fda03b174a Continue work on Server base class. 2008-03-25 13:50:10 -05:00
Jonathan Moore Liles 93ce31ea03 Work on server aspect of Engine. 2008-03-25 02:08:13 -05:00
Jonathan Moore Liles b64034fdf0 Work on sharing code between engine and timeline. 2008-03-20 20:21:00 -05:00
Jonathan Moore Liles b846d29c4b Try to get timeline working again. 2008-03-20 03:43:45 -05:00
Jonathan Moore Liles a0a3a9a41e Further refine makefile. 2008-03-20 02:18:59 -05:00
Jonathan Moore Liles 7c6d211871 Work on reorganizing the build. 2008-03-20 02:13:45 -05:00
Jonathan Moore Liles c415fe9680 Begin rearranging. 2008-03-19 22:13:27 -05:00
Jonathan Moore Liles 3082d8ce03 Make properly register burnished box. 2008-03-19 20:06:28 -05:00
Jonathan Moore Liles 860c4fc23c Add burnished_oval_box boxtype. 2008-03-19 16:33:10 -05:00
Jonathan Moore Liles 21db36412a Cosmetic panner changes. 2008-03-15 00:59:54 -05:00
Jonathan Moore Liles 21ced50797 WIP. 2008-03-14 22:40:48 -05:00
Jonathan Moore Liles c88ef27abf Add mousewheel handling. 2008-03-14 19:23:03 -05:00
Jonathan Moore Liles cf9cbd2691 Big cleanup. 2008-03-14 18:47:40 -05:00
Jonathan Moore Liles 7a9702a43e Draw speakers just like other points. 2008-03-14 17:29:10 -05:00
Jonathan Moore Liles c416a8a098 Add fancy echo-lines. 2008-03-14 02:19:00 -05:00
Jonathan Moore Liles 36021c9251 Use distance/angle for pan points instead of X/Y. 2008-03-14 02:11:59 -05:00
Jonathan Moore Liles 00bf99a6bf Get rid of broken log code. 2008-03-14 00:45:30 -05:00
Jonathan Moore Liles f2bdcbb402 Add logarithmic option 2008-03-14 00:37:31 -05:00
Jonathan Moore Liles 53389dbe54 Minor cleanup 2008-03-14 00:37:10 -05:00
Jonathan Moore Liles a002805fcc Improve edge behavior. 2008-03-14 00:02:18 -05:00
Jonathan Moore Liles 649158d429 Add custom Fl_Arc_Dial. 2008-03-13 23:27:13 -05:00
Jonathan Moore Liles 2715326ee7 More work on panner. 2008-03-13 20:45:49 -05:00
Jonathan Moore Liles 153dc533ba Clean up channel config definitions. 2008-03-13 17:00:45 -05:00
Jonathan Moore Liles c6de6b85d6 Improve panner layout rendering. 2008-03-13 16:03:00 -05:00
Jonathan Moore Liles 65a87dde02 Move panner guts out of header. 2008-03-13 14:42:24 -05:00
Jonathan Moore Liles 4db2918b03 Work on panner widget. 2008-03-13 14:23:18 -05:00
Jonathan Moore Liles bd64101c75 Play with meters. 2008-03-12 23:47:06 -05:00
Jonathan Moore Liles 989d6b4d51 Give DPM a label. 2008-03-12 16:35:08 -05:00
Jonathan Moore Liles 0ffa0144db Don't forget to free space allocated for lables. 2008-03-12 15:18:54 -05:00
Jonathan Moore Liles 90a45ba11c Add new Fl_Flip_Button class. 2008-03-12 15:13:47 -05:00
Jonathan Moore Liles da12ff957c Don't override type() needlessly. 2008-03-12 13:08:55 -05:00
Jonathan Moore Liles 56c04b6e30 Add new Fl_Scalepack class. 2008-03-12 12:59:59 -05:00
Jonathan Moore Liles 62f5e9006c Oops. Forgot to commit meter base class header. 2008-03-12 11:41:16 -05:00
Jonathan Moore Liles beda8a0d36 Minor cleanups. 2008-03-12 11:06:13 -05:00
Jonathan Moore Liles 0101ee43b9 Add a Meter base class, rename VU Meter to DPM. 2008-03-12 11:05:36 -05:00
Jonathan Moore Liles 43fe378e17 Avoid some unnecessary redrawing. 2008-03-12 00:23:12 -05:00
Jonathan Moore Liles b90a3ac6e5 Add peak hold to VU meter widget. 2008-03-11 23:31:50 -05:00
Jonathan Moore Liles 39549d1113 Work on VU meter and mixer strip. 2008-03-11 22:07:41 -05:00
Jonathan Moore Liles 481698caae Minor cleanup. 2008-03-11 20:40:24 -05:00
Jonathan Moore Liles becd8962eb Add a VU_Meter widget. 2008-03-11 20:32:04 -05:00
Jonathan Moore Liles 3266c385c3 Try to clean up some corner cases with crossfade drawing. 2008-03-09 20:07:04 -05:00
Jonathan Moore Liles bb61dde7fb Fix math errors in normalizer and waveform colorer. 2008-03-09 18:16:51 -05:00
Jonathan Moore Liles 90a5568a20 Log auido tracks as Audio_Track. 2008-03-09 16:27:06 -05:00
Jonathan Moore Liles 7d6121e2d8 Tracks are virtual, so use Fl_Widget instead of Fl_Group as base class. 2008-03-09 16:18:22 -05:00
Jonathan Moore Liles 8a467843d0 Draw crossfade waveforms in x-ray style. 2008-03-09 13:28:48 -05:00
Jonathan Moore Liles 35fc23bec8 Add an option to add a new take. 2008-03-09 12:56:17 -05:00
Jonathan Moore Liles 546a0bde01 Add conditional compile option to disable timeline doublebuffering. 2008-03-09 12:38:50 -05:00
Jonathan Moore Liles da948fa02f Minor cleanup. 2008-03-09 12:38:36 -05:00
Jonathan Moore Liles c81d48c613 Don't try to be so fancy about drawing measure lines. 2008-03-08 23:06:37 -06:00
Jonathan Moore Liles a6e65c8159 Cleanup region mouseover. 2008-03-08 22:19:05 -06:00
Jonathan Moore Liles e0e6cb7379 Try to use part of FLTK's DND system for inter-track region dragging. 2008-03-08 18:38:34 -06:00
Jonathan Moore Liles 9a01389624 Separate track, control tracks, and takes. 2008-03-08 15:48:06 -06:00
Jonathan Moore Liles decd7d107b Blend control track polygon into background. 2008-03-08 14:20:42 -06:00
Jonathan Moore Liles fb00a746b3 Draw measure lines OVER control polygon. 2008-03-08 14:10:43 -06:00
Jonathan Moore Liles 394d079706 Draw control points with a polygon. 2008-03-08 13:39:20 -06:00
Jonathan Moore Liles 65e251360f Improve takes menu functionality. 2008-03-08 13:04:26 -06:00
Jonathan Moore Liles faebcc48ae Play with waveform outlines. 2008-03-08 11:43:11 -06:00
Jonathan Moore Liles 8d31a880b3 Fix error in waveform coloring. 2008-03-08 11:17:35 -06:00
Jonathan Moore Liles f6d5123e35 Minor cleanups. 2008-03-07 22:52:49 -06:00
Jonathan Moore Liles 85ed98e040 Work on "takes" system. 2008-03-07 22:31:38 -06:00
Jonathan Moore Liles 8a85a8c217 Fix problem interaction between normalization and zooming. 2008-03-07 22:31:11 -06:00
Jonathan Moore Liles bc5019035c Fix undo for control points. 2008-03-07 19:05:53 -06:00
Jonathan Moore Liles 43b244a2db Fix control track scrolling issues. 2008-03-07 18:57:55 -06:00
Jonathan Moore Liles 4de8751032 Improve event handling for control tracks. 2008-03-07 18:06:42 -06:00
Jonathan Moore Liles e202523e51 Add control (automation) tracks. 2008-03-06 22:47:52 -06:00
Jonathan Moore Liles e3fe3abeda Make crossfades more obvious. 2008-03-06 20:37:06 -06:00
Jonathan Moore Liles 5d41f34b77 Draw crossfades. 2008-03-06 20:29:02 -06:00
Jonathan Moore Liles 3fbf9f9f82 More cleanups. 2008-03-06 17:29:28 -06:00
Jonathan Moore Liles 42d1643dad Cleanups. 2008-03-06 17:21:57 -06:00
Jonathan Moore Liles 613cbaa2a4 Cleanup timeline class a little. 2008-03-06 16:45:23 -06:00
Jonathan Moore Liles f58e156e3a Clean up track widget event handling some. 2008-03-06 13:30:08 -06:00
Jonathan Moore Liles 01a1e5846c Improve mouse cursor handling. 2008-03-06 12:46:40 -06:00
Jonathan Moore Liles c97a15047c Add boxy background to track widget labels. 2008-03-05 22:08:06 -06:00
Jonathan Moore Liles ec2dc52307 Add nifty mouseover region time display. 2008-03-05 21:26:07 -06:00
Jonathan Moore Liles e70ff0b101 Fix offset of imports. 2008-03-05 18:36:20 -06:00
Jonathan Moore Liles 65606b5fb3 Improve event handling and mouse cursor changing. 2008-03-05 18:14:46 -06:00
Jonathan Moore Liles 2c50272a9d Put selected deletions into a block. 2008-03-05 17:21:58 -06:00
Jonathan Moore Liles 3e45833e49 Improve the behavior of rubberband selection. 2008-03-05 17:15:44 -06:00
Jonathan Moore Liles 03385eb347 Clean up track widget event handling. 2008-03-05 16:51:04 -06:00
Jonathan Moore Liles 0cbfaff090 Move track widget pointer sorting func into track widget class. 2008-03-05 13:38:25 -06:00
Jonathan Moore Liles 73180334f3 Clip selection rectangle to track area. 2008-03-05 13:32:39 -06:00
Jonathan Moore Liles ed25a70aef Make rubberband selection work. 2008-03-05 13:06:41 -06:00
Jonathan Moore Liles 2f91da168d Make block undo and single undo work again. 2008-03-05 11:03:17 -06:00
Jonathan Moore Liles bccdecdee6 Work on block undo. 2008-03-05 01:05:08 -06:00
Jonathan Moore Liles 790f371456 Play with track header button callback. 2008-03-05 00:23:00 -06:00
Jonathan Moore Liles 78afcbe019 Work on selection operations more. 2008-03-04 20:12:54 -06:00
Jonathan Moore Liles 6a5417cd1a Avoid unnecessary redraw when duplicating. 2008-03-03 22:11:06 -06:00
Jonathan Moore Liles a0c6c794fa Make duplicate work for selection. 2008-03-03 22:03:55 -06:00
Jonathan Moore Liles 8533f49d87 Handle deselection specially. 2008-03-03 18:35:40 -06:00
Jonathan Moore Liles 4f2a6a28d1 Work on handling selection. 2008-03-03 18:25:05 -06:00
Jonathan Moore Liles ee577bc06b Make selection move together. 2008-03-03 15:36:33 -06:00
Jonathan Moore Liles 0b3c107192 Change the way selection works. 2008-03-03 15:04:41 -06:00
Jonathan Moore Liles 5048f70e50 Add remove-selected binding. Work on transactions. 2008-03-03 12:59:05 -06:00
Jonathan Moore Liles e2c6442dee Work on transaction support for undo system. 2008-03-03 10:13:17 -06:00
Jonathan Moore Liles fbb9ca3c4c Clean up some drawing issues. 2008-03-01 09:48:15 -06:00
Jonathan Moore Liles c9926362a7 Minor fixes. 2008-03-01 09:25:27 -06:00
Jonathan Moore Liles 0155831e34 Make tracks interactively resizable. 2008-03-01 08:23:59 -06:00
Jonathan Moore Liles c748c34cb6 Properly maintain unique ID accross undo of deletion. 2008-03-01 01:31:06 -06:00
Jonathan Moore Liles 67f9b029bd Fix FL_DAMAGE_CHILD redraw broken by track headers. 2008-03-01 00:01:00 -06:00
Jonathan Moore Liles 8972817a8a Add option to disable drawing of measure lines. 2008-02-29 23:42:03 -06:00
Jonathan Moore Liles 25561b328d Make timeline use an overlay window. 2008-02-29 22:57:53 -06:00
Jonathan Moore Liles d7902f7661 Change the appearance of track headers slightly. 2008-02-29 22:38:24 -06:00
Jonathan Moore Liles d2749e3397 Begin to make Track_Header widget loggable. 2008-02-29 19:30:20 -06:00
Jonathan Moore Liles bcb8e5205c Get rid of fluid file for Track_Header widget, as fluid doesn't allow us multiple inheritance on widget classes. 2008-02-29 18:06:05 -06:00
Jonathan Moore Liles 6d8f612480 Nothing much. 2008-02-28 23:14:40 -06:00
Jonathan Moore Liles 8a1a6d7fe3 Keep scrollbars on top of timeline widget. 2008-02-28 21:34:03 -06:00
Jonathan Moore Liles f8ab34b914 Fix measure line drawing/snap messed up by addition of track headers. 2008-02-28 21:14:21 -06:00
Jonathan Moore Liles 2e8999c103 Contine working on integrating the track headers. 2008-02-28 20:47:29 -06:00
Jonathan Moore Liles ea7facb2fb Add track header widget and adjust tracks to compensate. 2008-02-28 20:02:40 -06:00
Jonathan Moore Liles 84c4c93d6f Don't let beat snap override region snap. 2008-02-28 14:43:56 -06:00
Jonathan Moore Liles 8f0fb79543 Implement snap to bar. 2008-02-28 14:36:46 -06:00
Jonathan Moore Liles 618d78eaeb More work on undo. 2008-02-28 14:10:41 -06:00
Jonathan Moore Liles aacd502f04 Make tempo and time point deletion undoable also. 2008-02-28 13:00:10 -06:00
Jonathan Moore Liles e22b7cc635 Clean up measure line code more. 2008-02-28 12:34:10 -06:00
Jonathan Moore Liles d573e394ec Clean up measure line drawing. 2008-02-28 10:43:21 -06:00
Jonathan Moore Liles 6c07927b40 Show measure lines in a different color from beat lines. 2008-02-28 10:37:02 -06:00
Jonathan Moore Liles f8752d301f Combine click trim and drag trim into one log message. 2008-02-28 10:19:24 -06:00
Jonathan Moore Liles 143035f0e8 Make region deletion undoable. 2008-02-28 06:53:44 -06:00
Jonathan Moore Liles 9e47efc585 Don't open the same file twice. 2008-02-28 06:35:43 -06:00
Jonathan Moore Liles f3d7abfe32 More work on cleaning up undo system. 2008-02-28 05:55:09 -06:00
Jonathan Moore Liles 66815ae8fb Work on making delete undoable. 2008-02-27 14:04:17 -06:00
Jonathan Moore Liles 3d57bf5c52 Draw waveforms within box boarders. 2008-02-26 03:18:16 -06:00
Jonathan Moore Liles a81a46510d Don't draw more waveform than necessary. 2008-02-26 00:08:02 -06:00
Jonathan Moore Liles 63fb8971a2 Make vertical scrolling work. 2008-02-25 22:58:15 -06:00
Jonathan Moore Liles 364fee5983 WIP 2008-02-25 19:03:59 -06:00
Jonathan Moore Liles 489f5e8adf Get multiple-undo sort of working. 2008-02-25 16:47:49 -06:00
Jonathan Moore Liles 359c2bd72f Actually get (single) undo working. 2008-02-24 22:14:19 -06:00
Jonathan Moore Liles cc39d05c7a Improve journaling. 2008-02-24 07:28:55 -06:00
Jonathan Moore Liles 0f9d79b3d8 Log changes to track objcets as well. 2008-02-24 04:58:16 -06:00
Jonathan Moore Liles 49628da177 Improve journaling... Add transactions. 2008-02-24 04:04:14 -06:00
Jonathan Moore Liles 66414fe6b8 Implement split function. 2008-02-24 01:48:07 -06:00
Jonathan Moore Liles 69fb7a7890 Work on journal system. 2008-02-24 01:42:41 -06:00
Jonathan Moore Liles 54f2d107d4 Clean up trimming extremes. 2008-02-23 20:25:58 -06:00
Jonathan Moore Liles 668a568d42 Work on vertical scrolling. 2008-02-23 00:59:10 -06:00
Jonathan Moore Liles d18b06bb00 Get rid of unnecessary redraw when deleting track widgets. 2008-02-22 23:18:48 -06:00
Jonathan Moore Liles 128ce9d577 Clean up scalebar zoom extremes. 2008-02-22 23:11:37 -06:00
Jonathan Moore Liles e1da3ffd00 Fix region trimming when region is larger than current viewport. 2008-02-22 22:51:41 -06:00
Jonathan Moore Liles 9640ca934f Actually write journal to file. 2008-02-22 14:20:44 -06:00
Jonathan Moore Liles d3c62adde2 Oops. Fix label drawing offset. 2008-02-22 13:56:07 -06:00
Jonathan Moore Liles aae8753db1 Don't redraw tracks twice! 2008-02-22 13:52:23 -06:00
Jonathan Moore Liles 2ecd28029b Handle escaped characters in paste URLs. 2008-02-22 13:30:49 -06:00
Jonathan Moore Liles 06ad6c6575 Fix open. 2008-02-22 12:57:45 -06:00
Jonathan Moore Liles f8fb113886 Handle peaks for multichannel files. 2008-02-22 12:40:51 -06:00
Jonathan Moore Liles 6cfe9e8b6c Support multichannel sound files. 2008-02-22 08:03:00 -06:00
Jonathan Moore Liles 0e6352c54a Make loggables more uniform. 2008-02-22 05:44:35 -06:00
Jonathan Moore Liles 9246742be2 Add log messages for tempo and time points. 2008-02-22 04:44:41 -06:00
Jonathan Moore Liles 1ec4843580 Move log message types into their own class. 2008-02-22 04:22:22 -06:00
Jonathan Moore Liles 8856fd8b9e Fix event_widget detection for overlapping widgets. 2008-02-22 03:44:09 -06:00
Jonathan Moore Liles 9bb9f1bd9d Clean up some issues with new scrolling optimization. 2008-02-22 02:51:22 -06:00
Jonathan Moore Liles 97b344d3dd Replace Clip class with Audio_File abstract class who's children are interfaces to
various libraries.
2008-02-22 02:19:20 -06:00
Jonathan Moore Liles 8b92eb9318 Get rid of some unnecessary redrawing. 2008-02-21 22:53:39 -06:00
Jonathan Moore Liles b6106fc6da First pass at implementing fl_scroll optimization for timeline. 2008-02-21 12:31:15 -06:00
Jonathan Moore Liles cee75218f3 Move stuff from main.C into Timeline.C 2008-02-21 10:20:36 -06:00
Jonathan Moore Liles 391ec0757a Work on time/tempo tracks. 2008-02-21 06:57:33 -06:00
Jonathan Moore Liles 1246944a95 Fix hight of Track_Widget box. 2008-02-21 04:45:50 -06:00
Jonathan Moore Liles 045bb504c3 Actually use tempo track for tempo data. 2008-02-21 04:39:13 -06:00
Jonathan Moore Liles 44904bc640 Split some track widget classes into seperate headers. 2008-02-21 04:01:25 -06:00
Jonathan Moore Liles 5118c79c2f Reinstate normalize action. 2008-02-21 03:51:07 -06:00
Jonathan Moore Liles 28895ca0ea Invert waveform color when selected 2008-02-21 03:48:53 -06:00
Jonathan Moore Liles 64f18c7585 Remove jitter from region track jumping. 2008-02-21 03:38:35 -06:00
Jonathan Moore Liles ef305848c9 Replace scrollbar with scalebar and ditch zoom slider. 2008-02-21 03:35:03 -06:00
Jonathan Moore Liles 71a4692f2d Scroll bar moves by pixels, not samples. This eliminates rounding errors while scrolling. 2008-02-21 02:46:31 -06:00
Jonathan Moore Liles 9b1e8259be Permit region selection. 2008-02-21 01:38:31 -06:00
Jonathan Moore Liles f5aaee31f7 Permit removal of Track_Widgets. 2008-02-21 01:17:49 -06:00
Jonathan Moore Liles 408bf5b296 Split soundfile DND functionality of Track into Audio_Track class. 2008-02-21 00:39:00 -06:00
Jonathan Moore Liles 9321a19a5d Begin generalizing track class as base class. 2008-02-21 00:28:20 -06:00
Jonathan Moore Liles 825d16c5b7 Reinstitute drag scrolling. 2008-02-21 00:12:21 -06:00
Jonathan Moore Liles 2902ea92dc Try to generalize the Track_Widget display calculations. 2008-02-21 00:02:43 -06:00
Jonathan Moore Liles a1dd1192cc Add Track_Point class for track widgets with no meaningful length. 2008-02-20 22:03:48 -06:00
Jonathan Moore Liles 4a266bc86a Attempt to clean up label drawing for track widgets. 2008-02-20 21:40:20 -06:00
Jonathan Moore Liles f042e887e0 Make normalize region work again. 2008-02-20 20:10:44 -06:00
Jonathan Moore Liles 9e23dd5878 Use base class handle() in Region. 2008-02-20 20:06:39 -06:00
Jonathan Moore Liles ff0614c7ae Add tempo track and tempo_point widgets. 2008-02-20 19:51:40 -06:00
Jonathan Moore Liles cec2dc4afd Add member functions to track_widget to retreive scroll position. 2008-02-20 18:32:54 -06:00
Jonathan Moore Liles 2cc273ccc6 WIP 2008-02-20 18:25:21 -06:00
Jonathan Moore Liles 08182d2c5f Make track use track_widget base class instead of regions. 2008-02-20 18:14:44 -06:00
Jonathan Moore Liles a2ea182810 More work on tempo map 2008-02-20 09:43:14 -06:00
Jonathan Moore Liles 609e00eecf Draw beat lines. 2008-02-20 06:45:02 -06:00
Jonathan Moore Liles e1e1d43f61 Make panning work. 2008-02-20 05:48:42 -06:00
Jonathan Moore Liles 372ceb4375 Improve event region calculation. 2008-02-20 05:40:23 -06:00
Jonathan Moore Liles 50680c6063 Fix event handling of trackwidgets when scrolled. 2008-02-20 05:29:31 -06:00
Jonathan Moore Liles f5f19db5a9 Fix label offset when scrolling... This is necessary if we want to support fl_scroll optimization. 2008-02-20 04:55:35 -06:00
Jonathan Moore Liles 318c27088b Reduce the number of peaks read when drawing region. 2008-02-20 04:51:07 -06:00
Jonathan Moore Liles 5e0e95cc0a Fixup virtual scrolling. 2008-02-20 04:45:10 -06:00
Jonathan Moore Liles d5dc2a2edf Split region into TrackWidget base class. 2008-02-20 02:49:47 -06:00
Jonathan Moore Liles e94cb69c34 Clean up region box drawing. 2008-02-20 01:53:54 -06:00
Jonathan Moore Liles 7501a8094b Make snapping work again. 2008-02-20 01:24:56 -06:00
Jonathan Moore Liles bcfa0cb029 Make trimming work. 2008-02-20 01:08:36 -06:00
Jonathan Moore Liles 35d277d67d Make region dragging work. 2008-02-20 00:46:28 -06:00
Jonathan Moore Liles 900c49aeae Begin handlig region events again. 2008-02-20 00:35:29 -06:00
Jonathan Moore Liles 69aee9de79 Add scrollbar for timeline. 2008-02-20 00:11:33 -06:00
Jonathan Moore Liles 76afaa5792 Begin moving to custom track scrolling with 'virtual' region widgets. 2008-02-19 23:57:14 -06:00
Jonathan Moore Liles 80ec2b6e35 Work in snapping some more. 2008-02-19 00:22:42 -06:00
Jonathan Moore Liles 2d6a93b448 Try to make snapping more accurate. 2008-02-18 18:35:37 -06:00
Jonathan Moore Liles a055856c56 Implement snap-to for regions. 2008-02-18 01:44:31 -06:00
Jonathan Moore Liles 5ec40ad5ce Permit panning of regions. Try to prevent trimming or panning beyond 0. 2008-02-18 01:15:12 -06:00
Jonathan Moore Liles 6b48c0d629 Insert imported regions at offset of drop. 2008-02-17 23:25:26 -06:00
Jonathan Moore Liles 3b02169d31 Make normalization code work at all zoom levels. 2008-02-17 21:37:26 -06:00
Jonathan Moore Liles a032a95fad Cleanup some issues with trimming. 2008-02-17 19:13:20 -06:00
Jonathan Moore Liles d36804ea4e Finish making Peaks use Clip 2008-02-17 17:33:59 -06:00
Jonathan Moore Liles bb0b511122 Make make_peaks use Clip to access source. 2008-02-17 17:29:09 -06:00
Jonathan Moore Liles f27a222e47 Cleanup peak code to use Clip for reading. 2008-02-17 17:17:38 -06:00
Jonathan Moore Liles 1684805c63 Size Waveforms to clip length. 2008-02-17 16:03:31 -06:00
Jonathan Moore Liles 05854badd9 Clean up zoom bar a bit. 2008-02-17 15:25:02 -06:00
Jonathan Moore Liles 0328ebfa2d Read peaks from source in chunks of exact size requirested.
Use one buffer for all source-read peaks.
2008-02-17 14:41:59 -06:00
Jonathan Moore Liles 09a19516f3 Work on peak reader (WIP). Resize regions on zoom. 2008-02-17 03:00:38 -06:00
Jonathan Moore Liles 720f024fa0 Read peaks directly from source at high zoom levels. 2008-02-16 21:32:31 -06:00
Jonathan Moore Liles 0c9be68bcd Update peaks when necessary. 2008-02-16 20:59:45 -06:00
Jonathan Moore Liles 31b449c24b Use libsndfile. Actually generate peak data. 2008-02-16 20:36:17 -06:00
Jonathan Moore Liles 4129714315 More tweaking. 2008-02-16 18:35:53 -06:00
Jonathan Moore Liles 8905484cb1 Cleanups. 2008-02-16 17:28:48 -06:00
Jonathan Moore Liles 41b62781d1 Work on supporting actual audio backing. WIP. 2008-02-16 17:12:23 -06:00
Jonathan Moore Liles 1750df5f5e Add normalization function. 2008-02-16 04:30:56 -06:00
Jonathan Moore Liles a819cdd7b8 Color by amplitude when drawing waveform. 2008-02-16 02:41:25 -06:00
Jonathan Moore Liles 043517166e Cleanup region code a bit. 2008-02-16 02:09:11 -06:00
Jonathan Moore Liles 76d2d70611 Don't drag-scroll past beginning of track. 2008-02-16 01:59:50 -06:00
Jonathan Moore Liles 894d5d85d0 Allow copying of regions. 2008-02-16 01:46:43 -06:00
Jonathan Moore Liles ece5a45cb0 Automatically scroll timeline when dragging a region. 2008-02-16 01:21:15 -06:00
Jonathan Moore Liles 477e1f5b40 Let tracks recieve DND events. 2008-02-16 00:47:46 -06:00
Jonathan Moore Liles 41ac62e2cd Allow interactive trimming of regions. 2008-02-15 22:23:58 -06:00
Jonathan Moore Liles 62781a70ed Add tracks. Support dragging regions between tracks. 2008-02-15 21:50:16 -06:00
Jonathan Moore Liles 669d638ab0 Support trimming of region. 2008-02-14 01:40:47 -06:00
Jonathan Moore Liles 4b290d3372 Try to be more efficient about clipping. 2008-02-14 00:35:32 -06:00
Jonathan Moore Liles a7f590aa40 Initial checkin. 2008-02-13 23:47:12 -06:00
435 changed files with 71927 additions and 8159 deletions

3
.gitignore vendored
View File

@ -4,3 +4,6 @@
*.[ao]
TAGS
.nfs*
.waf*
build
attic

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "lib/ntk"]
path = lib/ntk
url = git://git.tuxfamily.org/gitroot/non/fltk.git

41
COPYING
View File

@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

100
FL/About_Dialog.fl Normal file
View File

@ -0,0 +1,100 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0300
header_name {.H}
code_name {.C}
decl {\#include <FL/Fl.H>} {private local
}
decl {\#include <FL/Fl_Shared_Image.H>} {private local
}
decl {\#include <FL/filename.H>} {private local
}
Function {open_url( const char *url )} {open return_type void
} {
code {fl_open_uri( url );} {}
}
class About_Dialog {open
} {
Function {About_Dialog( const char *logo_filename )} {open
} {
code {make_window( logo_filename );} {}
}
Function {run()} {open return_type void
} {
code {window->show();
while ( window->shown() )
Fl::wait();
delete window;} {}
}
Function {make_window( const char *logo_filename )} {open private
} {
Fl_Window window {
label About
callback {o->hide();
if ( logo_box->image() )
{
((Fl_Shared_Image*)logo_box->image())->release();
logo_box->image( 0 );
}} open selected
private xywh {879 215 560 695} type Double
visible
} {
Fl_Tabs {} {open
xywh {0 352 558 296}
} {
Fl_Group {} {
label Credits open
xywh {2 386 553 261}
} {
Fl_Box credits {
label {}
xywh {5 389 545 249} box ROUNDED_BOX color 46 labelsize 18
}
}
Fl_Group {} {
label License open
xywh {2 378 553 268} hide
} {
Fl_Box copyright {
label COPYRIGHT
xywh {43 389 462 22} labeltype SHADOW_LABEL labelfont 1 labelsize 18
}
Fl_Box {} {
label {This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.}
xywh {10 414 535 225} box ROUNDED_BOX color 46 labelfont 1 labelsize 12 labelcolor 53 align 144
}
}
}
Fl_Box logo_box {
label VERSION
xywh {5 5 550 305} color 48 labelfont 1 labelsize 18 align 16
code0 {o->image( Fl_Shared_Image::get( logo_filename ) );}
code1 {o->label( VERSION );}
}
Fl_Return_Button {} {
label Rock
callback {o->window()->do_callback();}
xywh {400 660 76 30}
}
Fl_Button website_url {
label {http://non-daw.tuxfamily.org}
callback {open_url( o->label() );}
xywh {125 660 245 30} color 14 labeltype SHADOW_LABEL labelcolor 6
}
Fl_Box title {
label TITLE
xywh {5 317 545 29} labeltype SHADOW_LABEL labelfont 3 labelsize 17
}
}
}
}

162
FL/Fl_Blink_Button.H Normal file
View File

@ -0,0 +1,162 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Button.H>
#include <FL/Fl.H>
/* Kind of like Fl_Light_Button except that the whole thing is the
* indicator and it can optionally blink */
class Fl_Blink_Button : public Fl_Button
{
bool _on;
int _blink_interval;
bool _blinking;
bool _ignore_input;
static void
update_cb ( void *v )
{
((Fl_Blink_Button*)v)->update_cb();
}
float
blink_interval_as_fraction_of_seceond ( void ) const
{
return (float)_blink_interval / 1000;
}
void
update_cb ( void )
{
Fl::repeat_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this );
_on = ! _on;
redraw();
}
public:
enum
{
SLOW=500,
MEDIUM=300,
FAST=100,
DEFAULT=500
};
Fl_Blink_Button ( int X, int Y, int W, int H, const char *L=0 )
: Fl_Button( X, Y, W, H, L )
{
_blinking = true;
_on = false;
_ignore_input = false;
_blink_interval = DEFAULT;
type( FL_TOGGLE_BUTTON );
}
virtual
~Fl_Blink_Button ()
{
if ( value() )
Fl::remove_timeout( update_cb, this );
}
void ignore_input ( bool b )
{
_ignore_input = b;
}
bool ignore_input ( void ) const
{
return _ignore_input;
}
void blink ( bool b )
{
_blinking = b;
if ( ! b )
_on = true;
}
bool blink ( void ) const
{
return _blinking;
}
void
blink_interval ( float v )
{
_blink_interval = v * 1000;
if ( value() )
{
Fl::remove_timeout( update_cb, this );
Fl::add_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this );
}
}
virtual void value ( float v )
{
bool b = v;
if ( b != value() )
{
if ( b )
{
if ( _blinking )
{
/* just to be safe.. */
Fl::remove_timeout( update_cb, this );
Fl::add_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this );
}
Fl_Button::value( b );
redraw();
}
else
{
Fl_Button::value( b );
Fl::remove_timeout( update_cb, this );
redraw();
}
}
}
virtual float value ( void ) { return (bool)Fl_Button::value(); }
virtual void
draw ( void )
{
draw_box( value() ? box() : down_box(), x(), y(), w(), h(),
( value() != 0 && _on ) ? selection_color() : color() );
draw_label();
}
virtual int handle ( int m )
{
if ( _ignore_input )
return 0;
else
return Fl_Button::handle( m );
}
};

124
FL/Fl_DialX.C Normal file
View File

@ -0,0 +1,124 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include "Fl_DialX.H"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
void
Fl_DialX::draw ( void )
{
int X,Y,S;
int act = active_r();
{
int ox, oy, ww, hh, side;
ox = x();
oy = y();
ww = w();
hh = h();
if (ww > hh)
{
side = hh;
ox = ox + (ww - side) / 2;
}
else
{
side = ww;
oy = oy + (hh - side) / 2;
}
side = w() > h() ? hh : ww;
X = ox;
Y = oy;
S = side;
}
draw_box();
draw_label();
double angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1();
fl_draw_box( box(), X, Y, S, S, color() );
/* shrink a bit */
int OX = x();
int OY = y();
X += S / 8;
Y += S / 8;
int OS = S;
S -= S / 4;
fl_line_style( FL_SOLID, S / 12 );
/* background arc */
Fl_Color c = fl_darker( color() );
if ( !act )
c = fl_inactive( c );
fl_color( c );
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle2() );
/* foreground arc */
c = selection_color();
if ( !act )
c = fl_inactive( c );
fl_color(c);
fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle );
fl_line_style( FL_SOLID, 0 );
if ( act )
{
int W = OS;
int H = OS;
fl_push_matrix();
fl_translate(OX+W/2, OY+H/2);
fl_scale(W, H);
fl_rotate(310+angle);
fl_color( fl_color_add_alpha( FL_WHITE, 127 ));
fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.12); fl_end_polygon();
fl_color( FL_WHITE );
fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.06); fl_end_polygon();
fl_pop_matrix();
}
fl_color( fl_contrast( labelcolor(), color() ) );
if ( Fl::belowmouse() == this )
{
char s[128];
fl_font( FL_HELVETICA, 9 );
char buf[128];
format(buf);
snprintf( s, sizeof( s ), buf, value() );
fl_color( FL_FOREGROUND_COLOR );
fl_draw( s, X, Y, S, S, FL_ALIGN_CENTER );
}
}

36
FL/Fl_DialX.H Normal file
View File

@ -0,0 +1,36 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Dial.H>
class Fl_DialX : public Fl_Dial
{
public:
Fl_DialX ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Dial(X,Y,W,H,L)
{
}
virtual void draw ( void );
virtual ~Fl_DialX() { }
};

72
FL/Fl_Flip_Button.H Normal file
View File

@ -0,0 +1,72 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
/* Simple extension of Fl_Button to support different lables for the
* two button states. Simpler than using a an Fl_Choice when all you
* need is two states. Set the label to "foo/bar" for "foo" to be the
* off label and "bar" the on. Obviously you should make sure that
* each label will fit. */
#pragma once
#include <FL/Fl_Button.H>
#include <stdlib.h>
#include <stdio.h>
class Fl_Flip_Button : public Fl_Button
{
char *_off;
char *_on;
public:
Fl_Flip_Button ( int X, int Y, int W, int H, const char *L = 0 ) :
Fl_Button( X, Y, W, H, 0 )
{
sscanf( L, "%m[^/]/%ms", &_off, &_on );
type( FL_TOGGLE_BUTTON );
}
virtual ~Fl_Flip_Button ( )
{
if ( _off ) free( _off );
if ( _on ) free( _on );
}
protected:
virtual void
draw ( void )
{
if ( value() )
{
if ( label() != _on )
label( _on );
}
else
if ( label() != _off )
label( _off );
draw_box( box(), x(), y(), w(), h(), value() ? selection_color() : color() );
draw_label();
}
};

237
FL/Fl_Flowpack.H Normal file
View File

@ -0,0 +1,237 @@
/*******************************************************************************/
/* Copyright (C) 2009 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Group.H>
#include <FL/Fl_Pack.H>
class Fl_Flowpack : public Fl_Group
{
int _hspacing;
int _vspacing;
bool _flow;
bool _flowdown;
int _initial_height;
int _initial_width;
public:
Fl_Flowpack ( int X, int Y, int W, int H, const char *L = 0 )
: Fl_Group( X, Y, W, H, L )
{
resizable( 0 );
_hspacing = _vspacing = 0;
_initial_width = W;
_initial_height = H;
_flow = true;
_flowdown = false;
}
virtual ~Fl_Flowpack ( )
{
}
void vspacing ( int v ) { _vspacing = v; }
int vspacing ( void ) const { return _vspacing; };
void hspacing ( int h ) { _hspacing = h; }
int hspacing ( void ) const { return _hspacing; };
bool flow ( void ) const { return _flow; }
void flow ( bool v ) { _flow = v; }
bool flowdown ( void ) const { return _flowdown; }
void flowdown ( bool v ) { _flowdown = v; }
void
add ( Fl_Widget *w )
{
Fl_Group::add( w );
dolayout();
}
void
remove ( Fl_Widget *w )
{
Fl_Group::remove( w );
dolayout();
}
void
resize ( int X, int Y, int W, int H )
{
_initial_width = W;
_initial_height = H;
layout();
Fl_Group::resize( X, Y, w(), h() );
}
void
draw ( void )
{
layout();
Fl_Group::draw();
}
void dolayout ( void )
{
layout();
}
void
layout ( void )
{
resizable( 0 );
int W;
int H;
int X = 0;
int Y = 0;
int LW = 0;
int LH = 0;
int LX = 0;
int LY = 0;
int RH = 0;
// int RY = 0;
int CW = 0;
if ( _flow )
{
H = 0;
W = 0;
}
else
{
H = _initial_height;
W = _initial_width;
}
for ( int i = 0; i < children(); ++i )
{
Fl_Widget *o = child( i );
if ( ! o->visible() )
continue;
if ( _flow )
{
if ( _flowdown )
{
if ( Y + o->h() <= _initial_height )
{
/* if it'll fit in this column, put it below the previous widget */
X = LX;
}
else
{
Y = H;
CW = 0;
}
CW = o->w() > CW ? o->w() : CW;
RH = Y + o->h() > RH ? Y + o->h() : RH;
}
else
{
if ( X + o->w() >= _initial_width )
{
/* maybe wrap to the next row */
H += RH + _vspacing;
// RY = Y;
RH = 0;
if ( X > W )
W = X;
X = 0;
}
else
{
/* otherwise, put it in the next column */
Y = H;
}
RH = o->h() > RH ? o->h() : RH;
}
}
LW = o->w();
LH = o->h();
LX = X;
LY = Y;
if ( _flow )
{
if ( _flowdown )
{
Y += LH + _vspacing;
X += CW + _hspacing;
}
else
{
Y += RH + _vspacing;
X += LW + _hspacing;
}
}
else
{
if ( type() == Fl_Pack::HORIZONTAL )
{
X += LW + _hspacing;
LH = _initial_height;
W = X;
}
else
{
Y += LH + _vspacing;
LW = _initial_width;
H = Y;
}
}
if ( ! ( o->x() == x() + LX &&
o->y() == y() + LY &&
o->w() == LW &&
o->h() == LH ) )
o->resize( x() + LX,
y() + LY,
LW,
LH);
}
if ( _flow )
{
H += RH;
if ( X > W )
W = X;
/* if ( _flowdown ) */
/* H = _initial_height; */
}
Fl_Group::resize( x(), y(), W, H );
}
};

78
FL/Fl_Labelpad_Group.H Normal file
View File

@ -0,0 +1,78 @@
/*******************************************************************************/
/* Copyright (C) 2009 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
/* wrap a widget in a group as wide as the widget's label. This is
* useful when you want to put labeled widgets into a pack */
#include <FL/Fl_Widget.H>
#include <FL/Fl_Group.H>
#include <FL/fl_draw.H>
class Fl_Labelpad_Group : public Fl_Group
{
public:
static void measure_label ( Fl_Widget *o, int &W, int &H )
{
W = fl_width( o->label() );
H = fl_height();
}
Fl_Labelpad_Group ( Fl_Widget *o ) : Fl_Group( 0, 0, 50, 50, 0 )
{
resizable( 0 );
end();
add( o );
fl_font( o->labelfont(), o->labelsize() );
int W, H;
measure_label( o, W, H );
// set size to contain widget
if ( o->align() & ( FL_ALIGN_TOP | FL_ALIGN_BOTTOM ) )
size( W > o->w() ? W : o->w(), o->h() + H );
if ( o->align() & ( FL_ALIGN_LEFT | FL_ALIGN_RIGHT ) )
size( o->w() + W, H > o->h() ? H : o->h() );
// center widget in group
if ( o->align() & FL_ALIGN_TOP )
o->position( x() + w() / 2 - (o->w() / 2 ), y() + H );
else if ( o->align() & FL_ALIGN_BOTTOM )
o->position( x() + w() / 2 - (o->w() / 2 ), y() );
else if ( o->align() & FL_ALIGN_RIGHT )
o->position( x(), y() );
else if ( o->align() & FL_ALIGN_LEFT )
o->position( x() + W, y() );
else
{
/* TODO: other alignments */
}
resizable(o);
init_sizes();
}
virtual ~Fl_Labelpad_Group ( )
{
}
};

338
FL/Fl_Menu_Settings.C Normal file
View File

@ -0,0 +1,338 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include "Fl_Menu_Settings.H"
#include <string.h>
/* code to dump and restore (portions of) an Fl_Menu_ */
#define MAX_PATH 1024
void
Fl_Menu_Settings::remove_ampersands ( char *str, int n )
{
char *d = str;
char *s = str;
while ( n-- )
{
if ( *s == '&' )
{
++s;
continue;
}
*(d++) = *(s++);
}
*d = '\0';
}
void
Fl_Menu_Settings::indent ( FILE *fp, int n )
{
while ( n-- )
fprintf( fp, "\t" );
}
int
Fl_Menu_Settings::item_pathname_x ( char *path, int n, const Fl_Menu_Item *item )
{
int r = Fl_Menu_::item_pathname( path, n, item );
remove_ampersands( path, n );
return r;
}
/** dump options from submenu /menu/ of menubar /bar/ to file /fp/ */
const Fl_Menu_Item *
Fl_Menu_Settings::dump ( Fl_Menu_ *bar, const Fl_Menu_Item *menu, FILE *fp, int depth )
{
static char path[256];
const Fl_Menu_Item *m = menu;
for ( ; m->text; ++m )
{
bool is_radio = false;
if ( m->flags & FL_SUBMENU )
// if ( m->submenu() )
{
strcpy( path, m->text );
remove_ampersands( path, strlen( path ) );
indent( fp, depth );
fprintf( fp, "%s\n", path );
/* recurse */
m = dump( bar, ++m, fp, depth + 1 );
// ++m;
// m = dump( bar, m->flags & FL_SUBMENU_POINTER ? (Fl_Menu_Item*) m->user_data() : m, fp, depth + 1 );
if ( ! depth )
break;
else
continue;
}
if ( m->radio() )
is_radio = true;
// bar->item_pathname( path, sizeof( path ) - 1, m );
item_pathname_x( path, sizeof( path ) - 1, m );
if ( m->flags & FL_MENU_TOGGLE || m->flags & FL_MENU_RADIO )
{
if ( ! is_radio )
{
indent( fp, depth );
fprintf( fp, "%s\n", rindex( path, '/' ) + 1 );
indent( fp, depth + 1 );
fprintf( fp, "%s\n", m->flags & FL_MENU_VALUE ? "true" : "false" );
}
else if ( m->flags & FL_MENU_VALUE )
{
*rindex( path, '/' ) = '\0';
indent( fp, depth );
fprintf( fp, "%s\n", path + strlen( path ) + 1 );
}
}
}
return m;
}
/** dump menu to file /name/ starting at /item. */
int
Fl_Menu_Settings::dump ( const Fl_Menu_Item *item, const char *name )
{
FILE *fp = fopen( name, "w" );
if ( ! fp )
return false;
dump( this, item, fp, 0 );
fclose( fp );
return true;
}
#define strlcat strncat
/* taken from Fl_Menu_.cxx and modified to ignore hotkeys and case */
const Fl_Menu_Item *
Fl_Menu_Settings::find_item_x ( const char *name, const Fl_Menu_Item *item )
{
char menupath [ MAX_PATH ] = ""; // File/Export
const Fl_Menu_Item *m = item ? item : menu();
int depth = 0;
while ( depth >= 0 )
for ( ;m ; ++m )
{
if ( m->flags & FL_SUBMENU )
{
// IT'S A SUBMENU
// we do not support searches through FL_SUBMENU_POINTER links
if ( menupath[0] )
strlcat( menupath, "/", sizeof( menupath ) );
strlcat( menupath, m->label(), sizeof( menupath ) );
remove_ampersands( menupath, strlen( menupath ) );
if ( ! strcasecmp( menupath, name ) )
return m;
else
{
++depth;
continue;
}
}
else
{
if ( ! m->label() )
{
// END OF SUBMENU? Pop back one level.
char *ss = strrchr( menupath, '/' );
if ( ss )
*ss = 0;
else
menupath[0] = '\0';
--depth;
++m;
break;
}
// IT'S A MENU ITEM
char itempath[ MAX_PATH ]; // eg. Edit/Copy
strcpy( itempath, menupath );
if ( itempath[0] )
strlcat( itempath, "/", sizeof( itempath ) );
strlcat( itempath, m->label(), sizeof( itempath ) );
remove_ampersands( itempath, strlen( itempath ) );
if ( !strcasecmp( itempath, name ) )
return m;
}
}
return ( Fl_Menu_Item * )0;
}
static void
path_push ( char *path, const char *s )
{
strcat( path, s );
strcat( path, "/" );
}
static void
path_pop ( char *path )
{
char *s;
int l = strlen( path );
if ( ! l )
return;
if ( path[ l - 1 ] == '/' )
path[ l - 1 ] = '\0';
s = rindex( path, '/' );
if ( s )
*(s + 1) = '\0';
else
*path = '\0';
}
void
Fl_Menu_Settings::load ( Fl_Menu_ *bar, const Fl_Menu_Item *item, FILE *fp, int depth, char *path, int pmax )
{
char line[256];
while ( ! feof( fp ) )
{
*line = '\0';
fgets( line, sizeof( line ), fp );
if ( *line == '#' )
continue;
line[ strlen( line ) - 1 ] = '\0';
int ld = strspn( line, "\t" );
if ( ld > depth )
{
path_push( path, line + ld );
++depth;
// load( bar, item, fp, depth + 1, path, pmax );
/* */;
}
else if ( ld < depth )
{
/* we should know the path and the value now */
// path_pop( path );
*rindex( path, '/' ) = '\0';
// printf( "%s = %s\n", path, path + strlen( path ) + 1 );
const Fl_Menu_Item *it = find_item_x( path, item + 1 );
if ( it && it->radio() ) /* radio button */
{
bar->picked( it );
path_pop( path );
}
else /* toggle */
{
*rindex( path, '/' ) = '\0';
if ( ( it = find_item_x( path, item + 1 ) ) && it->checkbox() )
{
int v = 0 == strcasecmp( "true", (path + strlen( path ) + 1 ) );
if ( v != ( it->value() != 0 ) /* grr, FLTK */ )
bar->picked( it );
}
}
while ( ld < depth )
{
path_pop( path );
depth--;
}
path_push( path, line + ld );
}
else /* d == depth */
{
/* doesn't apply? */
}
}
}
/** load settings from file /name/ into menu starting at /item */
int
Fl_Menu_Settings::load ( const Fl_Menu_Item *item, const char *name )
{
FILE *fp = fopen( name, "r" );
if ( ! fp )
return false;
char path[ MAX_PATH ];
path[0] = '\0';
load( this, item, fp, 0, path, sizeof( path ) );
fclose( fp );
return true;
}

43
FL/Fl_Menu_Settings.H Normal file
View File

@ -0,0 +1,43 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include <FL/Fl_Menu_.H>
#include <stdio.h>
class Fl_Menu_Settings : public Fl_Menu_
{
void remove_ampersands ( char *str, int n );
void indent ( FILE *fp, int n );
const Fl_Menu_Item * dump ( Fl_Menu_ *bar, const Fl_Menu_Item *menu, FILE *fp, int depth );
void load ( Fl_Menu_ *bar, const Fl_Menu_Item *item, FILE *fp, int depth, char *path, int pmax );
public:
int item_pathname_x ( char *path, int n, const Fl_Menu_Item *item );
const Fl_Menu_Item * find_item_x ( const char *name, const Fl_Menu_Item *item );
int dump ( const Fl_Menu_Item *item, const char *name );
int load ( const Fl_Menu_Item *item, const char *name );
};

212
FL/Fl_Packscroller.H Normal file
View File

@ -0,0 +1,212 @@
/*******************************************************************************/
/* Copyright (C) 2010 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
/* Scrolling group suitable for containing a single child (a
* pack). When the Fl_Packscroller is resized, the child will be resized
* too. No scrollbars are displayed, but the widget responds to
* FL_MOUSEWHEEL events. */
#pragma once
#include <FL/Fl_Group.H>
#include <FL/fl_draw.H>
#include <FL/Fl.H>
/* FIXME: Optimize scroll */
class Fl_Packscroller : public Fl_Group
{
int _increment;
int _yposition;
static const int sbh = 15; /* scroll button height */
public:
Fl_Packscroller ( int X, int Y, int W, int H, const char *L = 0 ) : Fl_Group( X, Y, W, H, L )
{
_increment = 30;
_yposition = 0;
// color( FL_WHITE );
}
int increment ( void ) const { return _increment; }
void increment ( int v ) { _increment = v; }
void yposition ( int v )
{
if ( ! children() )
return;
int Y = v;
if ( Y > 0 )
Y = 0;
const int H = h();
// - (sbh * 2);
Fl_Widget *o = child( 0 );
if ( o->h() > H &&
Y + o->h() < H )
Y = H - o->h();
else if ( o->h() < H )
Y = 0;
if ( _yposition != Y )
{
_yposition = Y;
damage( FL_DAMAGE_SCROLL );
}
}
int yposition ( void ) const
{
if ( children() )
return child( 0 )->y() - (y() + sbh);
return 0;
}
void bbox ( int &X, int &Y, int &W, int &H )
{
X = x();
Y = y() + ( sbh * top_sb_visible() );
W = w();
H = h() - ( sbh * ( top_sb_visible() + bottom_sb_visible() ) );
}
int top_sb_visible ( void )
{
return children() && child(0)->y() != y() ? 1 : 0;
}
int bottom_sb_visible ( void )
{
if ( children() )
{
Fl_Widget *o = child( 0 );
if ( o->h() > h() && o->y() + o->h() != y() + h() )
return 1;
}
return 0;
}
virtual void
draw ( void )
{
if ( damage() & FL_DAMAGE_ALL )
{
fl_rectf( x(), y(), w(), h(), color() );
}
if ( ! children() )
return;
Fl_Widget *o = child( 0 );
o->position( x(), y() + _yposition );
const int top_sb = top_sb_visible();
const int bottom_sb = bottom_sb_visible();
fl_push_clip( x(), y() + ( sbh * top_sb ), w(), h() - (sbh * (top_sb + bottom_sb) ));
draw_children();
fl_pop_clip();
fl_font( FL_HELVETICA, 12 );
if ( top_sb )
{
fl_draw_box( box(), x(), y(), w(), sbh, color() );
fl_color( fl_contrast( FL_FOREGROUND_COLOR, color() ) );
fl_draw( "@2<", x(), y(), w(), sbh, FL_ALIGN_CENTER );
}
if ( bottom_sb )
{
fl_draw_box( box(), x(), y() + h() - sbh, w(), sbh, color() );
fl_color( fl_contrast( FL_FOREGROUND_COLOR, color() ) );
fl_draw( "@2>", x(), y() + h() - sbh, w(), sbh, FL_ALIGN_CENTER );
}
}
virtual int
handle ( int m )
{
switch ( m )
{
case FL_PUSH:
if ( top_sb_visible() &&
Fl::event_inside( x(), y(), w(), sbh ) )
{
return 1;
}
else if ( bottom_sb_visible() &&
Fl::event_inside( x(), y() + h() - sbh, w(), sbh ) )
{
return 1;
}
break;
case FL_RELEASE:
{
if ( top_sb_visible() &&
Fl::event_inside( x(), y(), w(), sbh ) )
{
yposition( yposition() + ( h() / 4 ) );
return 1;
}
else if ( bottom_sb_visible() &&
Fl::event_inside( x(), y() + h() - sbh, w(), sbh ) )
{
yposition( yposition() - (h() / 4 ) );
return 1;
}
break;
}
case FL_KEYBOARD:
{
if ( Fl::event_key() == FL_Up )
{
yposition( yposition() + ( h() / 4 ) );
return 1;
}
else if ( Fl::event_key() == FL_Down )
{
yposition( yposition() - (h() / 4 ) );
return 1;
}
break;
}
case FL_MOUSEWHEEL:
{
yposition( yposition() - ( Fl::event_dy() * _increment ) );
return 1;
}
}
return Fl_Group::handle( m );
}
};

250
FL/Fl_Scalepack.C Normal file
View File

@ -0,0 +1,250 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
/* Fl_Scalepack
This is similar to an Fl_Pack, but instead of the pack resizing
itself to enclose its children, this pack resizes its children to
fit itself. Of course, this only works well with highly flexible
widgets, but the task comes up often enough to warrent this class.
If and child happens to be the resizable() widget, then it will be
resized so the all the other children can fit around it, with their
current sizes (and the size of the Fl_Scalepack) maintained.
NOTES: An Fl_Pack as a direct child will not work, because Fl_Pack
changes its size in draw(), which throws off our resize
calculation. The whole idea of widgets being able to resize
themselves within draw() is horribly broken...
*/
#include "Fl_Scalepack.H"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <stdio.h>
Fl_Scalepack::Fl_Scalepack ( int X, int Y, int W, int H, const char *L ) :
Fl_Group( X, Y, W, H, L )
{
resizable( 0 );
_spacing = 0;
}
void
Fl_Scalepack::resize ( int X, int Y, int W, int H )
{
/* Fl_Group's resize will change our child widget sizes, which
interferes with our own resizing method. */
long dx = X - x();
long dy = Y - y();
bool r = W != w() || H != h();
Fl_Widget::resize( X, Y, W, H );
Fl_Widget*const* a = array();
for (int i=children(); i--;)
{
Fl_Widget* o = *a++;
o->position( o->x() + dx, o->y() + dy );
}
if ( r )
redraw();
}
void
Fl_Scalepack::draw ( void )
{
if ( resizable() == this )
/* this resizable( this ) is the default for Fl_Group and is
* reset by Fl_Group::clear(), but it is not our default... */
resizable( 0 );
int tx = x() + Fl::box_dx( box() );
int ty = y() + Fl::box_dy( box() );
int tw = w() - Fl::box_dw( box() );
int th = h() - Fl::box_dh( box() );
if ( damage() & FL_DAMAGE_ALL )
{
draw_box();
draw_label();
}
int v = 0;
int cth = 0;
int ctw = 0;
Fl_Widget * const * a = array();
for ( int i = children(); i--; )
{
Fl_Widget *o = *a++;
if ( o->visible() )
{
++v;
if ( o != this->resizable() )
{
cth += o->h();
ctw += o->w();
}
cth += _spacing;
ctw += _spacing;
}
}
ctw -= _spacing;
cth -= _spacing;
if ( 0 == v )
return;
if ( this->resizable() )
{
int pos = 0;
Fl_Widget * const * a = array();
for ( int i = children(); i--; )
{
Fl_Widget *o = *a++;
if ( o->visible() )
{
int X, Y, W, H;
if ( type() == HORIZONTAL )
{
X = tx + pos;
Y = ty;
W = o->w();
H = th;
}
else
{
X = tx;
Y = ty + pos;
W = tw;
H = o->h();
}
if ( this->resizable() == o )
{
if ( type() == HORIZONTAL )
W = tw - ctw - 3;
else
H = th - cth;
}
if (X != o->x() || Y != o->y() || W != o->w() || H != o->h() )
{
o->resize(X,Y,W,H);
o->clear_damage(FL_DAMAGE_ALL);
}
if ( damage() & FL_DAMAGE_ALL )
{
draw_child( *o );
draw_outside_label( *o );
}
else
update_child( *o );
/* if ( this->resizable() == o ) */
/* fl_rect( o->x(), o->y(), o->w(), o->h(), type() == VERTICAL ? FL_GREEN : FL_BLUE ); */
if ( type() == HORIZONTAL )
pos += o->w() + spacing();
else
pos += o->h() + spacing();
}
}
}
else
{
int sz = 0;
int pos = 0;
if ( type() == HORIZONTAL )
sz = (tw - (_spacing * (v - 1))) / v;
else
sz = (th - (_spacing * (v - 1))) / v;
Fl_Widget * const * a = array();
for ( int i = children(); i--; )
{
Fl_Widget *o = *a++;
if ( o->visible() )
{
int X, Y, W, H;
if ( type() == HORIZONTAL )
{
X = tx + pos;
Y = ty;
W = sz;
H = th;
}
else
{
X = tx;
Y = ty + pos;
W = tw;
H = sz;
}
if (X != o->x() || Y != o->y() || W != o->w() || H != o->h() )
{
o->resize(X,Y,W,H);
o->clear_damage(FL_DAMAGE_ALL);
}
if ( damage() & FL_DAMAGE_ALL )
{
draw_child( *o );
draw_outside_label( *o );
}
else
update_child( *o );
// fl_rect( o->x(), o->y(), o->w(), o->h(), type() == VERTICAL ? FL_RED : FL_YELLOW );
if ( type() == HORIZONTAL )
pos += o->w() + spacing();
else
pos += o->h() + spacing();
}
}
}
}

43
FL/Fl_Scalepack.H Normal file
View File

@ -0,0 +1,43 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Group.H>
class Fl_Scalepack : public Fl_Group
{
int _spacing;
public:
enum { VERTICAL, HORIZONTAL };
Fl_Scalepack ( int X, int Y, int W, int H, const char *L = 0 );
virtual ~Fl_Scalepack ( ) { }
int spacing ( void ) const { return _spacing; }
void spacing ( int v ) { _spacing = v; redraw(); }
virtual void resize ( int, int, int, int );
virtual void draw ( void );
};

341
FL/Fl_SliderX.C Normal file
View File

@ -0,0 +1,341 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include "Fl_SliderX.H"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <math.h>
void
Fl_SliderX::draw ( int X, int Y, int W, int H)
{
slider_size( horizontal() ? H / (float)W : W / (float)H );
int act = active_r();
if (damage()&FL_DAMAGE_ALL) draw_box();
int ww = (horizontal() ? W : H);
int hh = (horizontal() ? H : W);
int xx, S;
xx = slider_position( value(), ww );
S = (horizontal() ? H : W );
int xsl, ysl, wsl, hsl;
if (horizontal()) {
xsl = X+xx;
wsl = S;
ysl = Y + hh/2;
hsl = hh/4;
} else {
ysl = Y+xx;
hsl = S;
xsl = X + hh/2;
wsl = hh/4;
}
{
fl_push_clip(X, Y, W, H);
draw_box();
fl_pop_clip();
}
//draw_bg(X, Y, W, H);
fl_line_style( FL_SOLID, hh/6 );
Fl_Color c = fl_darker(color());
if ( !act )
c = fl_inactive(c);
fl_color(c);
if ( horizontal() )
fl_line ( X + S/2, Y + hh/2, X + W - S/2, Y + hh/2 );
else
fl_line ( X + hh/2, Y + S/2, X + hh/2, Y + H - S/2 );
c = selection_color();
if ( !act )
c = fl_inactive(c);
fl_color( c );
if ( horizontal() )
fl_line ( X + S/2, ysl, xsl + S/2, ysl );
else
fl_line ( X + S/2, Y + H - S/2, xsl, ysl + (S/2) );
fl_line_style( FL_SOLID, 0 );
if ( act )
{
fl_push_matrix();
if ( horizontal() )
fl_translate( xsl + (hh/2), ysl);
else
fl_translate( xsl, ysl + (hh/2) );
fl_color( fl_color_add_alpha( FL_WHITE, 127 ));
fl_begin_polygon(); fl_circle(0.0,0.0, hh/3); fl_end_polygon();
fl_color( FL_WHITE );
fl_begin_polygon(); fl_circle(0.0,0.0, hh/6); fl_end_polygon();
fl_pop_matrix();
}
draw_label(xsl, ysl, wsl, hsl);
if (Fl::focus() == this) {
draw_focus();
}
/* draw(x()+Fl::box_dx(box()), */
/* y()+Fl::box_dy(box()), */
/* w()-Fl::box_dw(box()), */
/* h()-Fl::box_dh(box())); */
}
/** return a value between 0.0 and 1.0 which represents the current slider position. */
int
Fl_SliderX::slider_position ( double value, int w )
{
double A = minimum();
double B = maximum();
if (B == A) return 0;
bool flip = B < A;
if (flip) {A = B; B = minimum();}
// if (!horizontal()) flip = !flip;
// if both are negative, make the range positive:
if (B <= 0) {flip = !flip; double t = A; A = -B; B = -t; value = -value;}
double fraction;
if (!log()) {
// linear slider
fraction = (value-A)/(B-A);
} else if (A > 0) {
// logatithmic slider
if (value <= A) fraction = 0;
else fraction = (::log(value)-::log(A))/(::log(B)-::log(A));
} else if (A == 0) {
// squared slider
if (value <= 0) fraction = 0;
else fraction = sqrt(value/B);
} else {
// squared signed slider
if (value < 0) fraction = (1-sqrt(value/A))*.5;
else fraction = (1+sqrt(value/B))*.5;
}
if (flip) fraction = 1-fraction;
w -= int(slider_size()*w+.5); if (w <= 0) return 0;
if (fraction >= 1) return w;
else if (fraction <= 0) return 0;
else return int(fraction*w+.5);
}
double
Fl_SliderX::slider_value ( int X, int w )
{
w -= int(slider_size()*w+.5); if (w <= 0) return minimum();
double A = minimum();
double B = maximum();
bool flip = B < A;
if (flip) {A = B; B = minimum();}
// if (!horizontal()) flip = !flip;
if (flip) X = w-X;
double fraction = double(X)/w;
if (fraction <= 0) return A;
if (fraction >= 1) return B;
// if both are negative, make the range positive:
flip = (B <= 0);
if (flip) {double t = A; A = -B; B = -t; fraction = 1-fraction;}
double value;
double derivative;
if (!log()) {
// linear slider
value = fraction*(B-A)+A;
derivative = (B-A)/w;
} else if (A > 0) {
// log slider
double d = (::log(B)-::log(A));
value = exp(fraction*d+::log(A));
derivative = value*d/w;
} else if (A == 0) {
// squared slider
value = fraction*fraction*B;
derivative = 2*fraction*B/w;
} else {
// squared signed slider
fraction = 2*fraction - 1;
if (fraction < 0) B = A;
value = fraction*fraction*B;
derivative = 4*fraction*B/w;
}
// find nicest multiple of 10,5, or 2 of step() that is close to 1 pixel:
if (step() && derivative > step()) {
double w = log10(derivative);
double l = ceil(w);
int num = 1;
int i; for (i = 0; i < l; i++) num *= 10;
int denom = 1;
for (i = -1; i >= l; i--) denom *= 10;
if (l-w > 0.69897) denom *= 5;
else if (l-w > 0.30103) denom *= 2;
value = floor(value*denom/num+.5)*num/denom;
}
if (flip) return -value;
return value;
}
int Fl_SliderX::handle(int event, int X, int Y, int W, int H) {
// Fl_Widget_Tracker wp(this);
switch (event) {
case FL_PUSH: {
Fl_Widget_Tracker wp(this);
if (!Fl::event_inside(X, Y, W, H)) return 0;
handle_push();
if (wp.deleted()) return 1; }
// fall through ...
case FL_DRAG: {
static int offcenter;
int ww = (horizontal() ? W : H);
if ( event == FL_PUSH )
{
int x = slider_position( value(), ww );
offcenter = (horizontal() ? (Fl::event_x()-X) - x : (Fl::event_y()-Y) - x );
}
try_again:
int mx = (horizontal() ? Fl::event_x()-X : Fl::event_y()-Y) - offcenter;
double v = slider_value( mx, ww );
if (event == FL_PUSH ) // && v == value()) {
{
int os = int(slider_size()*ww+0.5)/2;
if ( abs( offcenter ) > os )
{
offcenter = os;
event = FL_DRAG;
goto try_again;
}
}
handle_drag(clamp(v));
} return 1;
case FL_RELEASE:
handle_release();
return 1;
case FL_KEYBOARD:
{ Fl_Widget_Tracker wp(this);
switch (Fl::event_key()) {
case FL_Up:
if (horizontal()) return 0;
handle_push();
if (wp.deleted()) return 1;
handle_drag(clamp(increment(value(),-1)));
if (wp.deleted()) return 1;
handle_release();
return 1;
case FL_Down:
if (horizontal()) return 0;
handle_push();
if (wp.deleted()) return 1;
handle_drag(clamp(increment(value(),1)));
if (wp.deleted()) return 1;
handle_release();
return 1;
case FL_Left:
if (!horizontal()) return 0;
handle_push();
if (wp.deleted()) return 1;
handle_drag(clamp(increment(value(),-1)));
if (wp.deleted()) return 1;
handle_release();
return 1;
case FL_Right:
if (!horizontal()) return 0;
handle_push();
if (wp.deleted()) return 1;
handle_drag(clamp(increment(value(),1)));
if (wp.deleted()) return 1;
handle_release();
return 1;
default:
return 0;
}
}
// break not required because of switch...
case FL_FOCUS :
case FL_UNFOCUS :
if (Fl::visible_focus()) {
redraw();
return 1;
} else return 0;
case FL_ENTER :
case FL_LEAVE :
return 1;
case FL_MOUSEWHEEL :
{
if ( this != Fl::belowmouse() )
return 0;
if (Fl::e_dy==0)
return 0;
const int steps = Fl::event_ctrl() ? 128 : 16;
const float step = fabs( maximum() - minimum() ) / (float)steps;
int dy = Fl::e_dy;
/* slider is in 'upside down' configuration, invert meaning of mousewheel */
if ( minimum() > maximum() )
dy = 0 - dy;
handle_drag(clamp(value() + step * dy));
return 1;
}
default:
return 0;
}
}
int Fl_SliderX::handle(int event) {
if (event == FL_PUSH && Fl::visible_focus()) {
Fl::focus(this);
redraw();
}
return handle(event,
x()+Fl::box_dx(box()),
y()+Fl::box_dy(box()),
w()-Fl::box_dw(box()),
h()-Fl::box_dh(box()));
}

50
FL/Fl_SliderX.H Normal file
View File

@ -0,0 +1,50 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Slider.H>
class Fl_SliderX : public Fl_Slider
{
bool _log;
public:
void log ( bool v ) { _log = v; }
bool log ( void ) const { return _log; }
Fl_SliderX( int X, int Y, int W, int H, const char *L=0 ) : Fl_Slider(X,Y,W,H,L)
{
_log = 0;
}
virtual ~Fl_SliderX ( ) { };
virtual int slider_position ( double value, int w );
virtual double slider_value ( int X, int w );
virtual void draw ( int X, int Y, int W, int H );
virtual void draw ( void ) { draw(x(),y(),w(),h()); }
virtual int handle(int event, int X, int Y, int W, int H);
virtual int handle(int event);
};

125
FL/Fl_Sometimes_Input.H Normal file
View File

@ -0,0 +1,125 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
/* Just like an Fl_Input, except that when not being edited it
* displays just like a label. */
#include <FL/fl_draw.H>
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Input.H>
class Fl_Sometimes_Input : public Fl_Input
{
Fl_Boxtype _up_box;
char *_text;
public:
Fl_Sometimes_Input ( int X, int Y, int W, int H, const char *L=0 )
: Fl_Input( X, Y, W, H, L )
{
clear_visible_focus();
up_box( FL_NO_BOX );
when(FL_WHEN_ENTER_KEY);
}
void up_box ( Fl_Boxtype b ) { _up_box = b; }
Fl_Boxtype up_box ( void ) const { return _up_box; }
virtual void
draw ( void )
{
if ( this == Fl::focus() )
Fl_Input::draw();
else
{
fl_draw_box( up_box(), x(), y(), w(), h(), color() );
Fl_Color c = textcolor();// fl_contrast( textcolor(), color() );
fl_color( active_r() ? c : fl_inactive( c ) );
fl_font( textfont(), textsize() );
fl_draw( value(), x(), y(), w(), h(), (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_CLIP) );
}
}
virtual void
take_focus ( void )
{
set_visible_focus();
Fl_Widget::take_focus();
clear_visible_focus();
}
virtual int
handle ( int m )
{
int r = 0;
switch ( m )
{
case FL_KEYDOWN:
{
if ( ( Fl::event_key() == FL_Enter ||
Fl::event_key() == FL_Tab ) )
{
do_callback();
free( _text );
Fl::focus( NULL );
r = 1;
}
else if ( Fl::event_key() == FL_Escape )
{
value( _text );
Fl::focus( NULL );
r = 1;
}
break;
}
case FL_FOCUS:
_text = strdup( value() );
redraw();
r = 1;
break;
case FL_UNFOCUS:
_text = NULL;
redraw();
r = 1;
break;
case FL_PUSH:
take_focus();
redraw();
r = 1;
break;
case FL_DND_ENTER:
return 0;
case FL_PASTE:
return 0;
default:
break;
}
return Fl_Input::handle( m ) | r;
}
};

76
FL/Fl_Sometimes_Pack.H Normal file
View File

@ -0,0 +1,76 @@
/*******************************************************************************/
/* Copyright (C) 2012 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl_Pack.H>
class Fl_Sometimes_Pack : public Fl_Pack
{
bool _pack;
public:
Fl_Sometimes_Pack ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Pack(X,Y,W,H,L)
{
_pack = true;
}
virtual ~Fl_Sometimes_Pack ( )
{
}
void pack ( bool b )
{
if ( b != _pack )
redraw();
_pack = b;
}
bool pack ( void ) const
{
return _pack;
}
virtual void draw ( void )
{
/* draw_box(); */
if ( _pack )
{
Fl_Pack::draw();
}
else
{
if ( children() )
{
for ( int i = 0; i < children(); i++ )
{
Fl_Widget *o = child( i );
o->resize( x(),y(),w(), o->h() );
}
resize( x(), y(), w(), child(0)->h() );
}
Fl_Group::draw();
}
}
};

53
FL/Fl_Text_Edit_Window.fl Normal file
View File

@ -0,0 +1,53 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0300
header_name {.H}
code_name {.C}
decl {\#include <string.h>} {private local
}
widget_class Fl_Text_Edit_Window {open
xywh {377 295 355 410} type Double resizable
code0 {this->size_range( 0, 0, 400, 400 );}
class Fl_Double_Window modal visible
} {
Fl_Box title_box {
label {<title>}
xywh {5 7 345 28}
}
Fl_Text_Editor text_editor {selected
xywh {5 37 345 341} resizable
code0 {o->buffer( new Fl_Text_Buffer );}
}
Fl_Group {} {open
xywh {5 383 345 27}
} {
Fl_Return_Button return_button {
label {<return>}
callback {hide();}
xywh {250 383 100 25}
}
Fl_Box {} {
label {<empty>}
xywh {5 386 240 19} resizable
code0 {o->labeltype( FL_NO_LABEL );}
}
}
}
Function {fl_text_edit( const char *title, const char *button_text, const char *initial_text, int W = 355, int H = 410 )} {open C return_type {char *}
} {
code {Fl_Text_Edit_Window tew( 355, 410, title );
tew.size( W, H );
tew.return_button->label( button_text );
tew.title_box->label( title );
if ( initial_text )
tew.text_editor->buffer()->text( initial_text );
tew.show();
while ( tew.shown() )
Fl::wait();
return strdup( tew.text_editor->buffer()->text() );} {}
}

234
FL/Fl_Value_SliderX.C Normal file
View File

@ -0,0 +1,234 @@
/*******************************************************************************/
/* Copyright (C) 2012 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include "Fl_Value_SliderX.H"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <math.h>
void Fl_Value_SliderX::input_cb(Fl_Widget*, void* v) {
Fl_Value_SliderX& t = *(Fl_Value_SliderX*)v;
double nv;
if ((t.step() - floor(t.step()))>0.0 || t.step() == 0.0)
nv = strtod(t.input.value(), 0);
else
nv = strtol(t.input.value(), 0, 0);
if (nv != t.value() || t.when() & FL_WHEN_NOT_CHANGED) {
if ( ! t.soft())
nv = t.clamp(nv);
t.set_value(nv);
t.set_changed();
if (t.when())
{
t.value_damage();
t.do_callback();
}
}
}
void Fl_Value_SliderX::value_damage() {
char buf[128];
format(buf);
input.value(buf);
input.mark(input.position()); // turn off selection highlight
redraw();
}
Fl_Value_SliderX::~Fl_Value_SliderX ( void )
{
if (input.parent() == (Fl_Group *)this)
input.parent(0); // *revert* ctor kludge!
}
/**
Creates a new Fl_Value_SliderX widget using the given
position, size, and label string. The default boxtype is FL_DOWN_BOX.
*/
Fl_Value_SliderX::Fl_Value_SliderX(int X, int Y, int W, int H, const char*l)
: Fl_SliderX(X,Y,W,H,l),input(X, Y, W, H, 0) {
step(1,100);
soft_ = 0;
if (input.parent()) // defeat automatic-add
input.parent()->remove(input);
input.parent((Fl_Group *)this); // kludge!
input.callback(input_cb, this);
input.when(FL_WHEN_ENTER_KEY);
align(FL_ALIGN_LEFT);
value_damage();
textsize(9);
set_flag(SHORTCUT_LABEL);
}
void Fl_Value_SliderX::draw() {
int sxx = x(), syy = y(), sww = w(), shh = h();
int bxx = x(), byy = y(), bww = w(), bhh = h();
if (horizontal()) {
input.resize(x(), y(), 35, h());
bww = 35; sxx += 35; sww -= 35;
} else {
input.resize(x(), y(), w(), 25 );
syy += 25; bhh = 25; shh -= 25;
}
if (damage()&FL_DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color());
Fl_SliderX::draw(sxx+Fl::box_dx(box()),
syy+Fl::box_dy(box()),
sww-Fl::box_dw(box()),
shh-Fl::box_dh(box()));
draw_box(box(),bxx,byy,bww,bhh,color());
if (damage()&~FL_DAMAGE_CHILD) input.clear_damage(FL_DAMAGE_ALL);
input.box(box());
input.color(color(), selection_color());
Fl_Widget *i = &input; i->draw(); // calls protected input.draw()
input.clear_damage();
}
int Fl_Value_SliderX::handle(int event) {
if (event == FL_PUSH && Fl::visible_focus()) {
Fl::focus(this);
redraw();
}
int sxx = x(), syy = y(), sww = w(), shh = h();
if (horizontal()) {
sxx += 35; sww -= 35;
} else {
syy += 25; shh -= 25;
}
double v;
int delta;
int mx = Fl::event_x_root();
static int ix, drag;
// input.when(when());
switch (event) {
case FL_ENTER:
return 1;
case FL_LEAVE:
if ( ! drag )
fl_cursor( FL_CURSOR_DEFAULT );
return 1;
case FL_MOVE:
if ( drag || Fl::event_inside( &input ) )
fl_cursor( FL_CURSOR_WE );
else
fl_cursor( FL_CURSOR_DEFAULT );
return 1;
case FL_PUSH:
// if (!step()) goto DEFAULT;
if ( Fl::event_inside(&input) )
{
input.handle(event);
ix = mx;
drag = Fl::event_button();
handle_push();
return 1;
}
goto DEFAULT;
break;
case FL_DRAG:
{
if ( ! drag )
goto DEFAULT;
fl_cursor( FL_CURSOR_WE );
// if (!step()) goto DEFAULT;
delta = mx-ix;
if (!horizontal())
delta = -delta;
if (delta > 5) delta -= 5;
else if (delta < -5) delta += 5;
else delta = 0;
float S = fabs( maximum() - minimum() );
switch (drag) {
case 3: v = previous_value() + ( S * delta * 0.0100f); break;
case 2: v = previous_value() + ( S * delta * 0.0010f); break;
default:v = previous_value() + ( S * delta * 0.0005f); break;
}
v = round(v);
v = soft()?softclamp(v):clamp(v);
handle_drag(v);
value_damage();
return 1;
}
case FL_RELEASE:
if ( ! drag )
goto DEFAULT;
// if (!step()) goto DEFAULT;
if (value() != previous_value() || !Fl::event_is_click())
handle_release();
drag = 0;
fl_cursor( FL_CURSOR_DEFAULT );
/* else { */
/* Fl_Widget_Tracker wp(&input); */
/* input.handle(FL_PUSH); */
/* if (wp.exists()) */
/* input.handle(FL_RELEASE); */
/* } */
return 1;
case FL_FOCUS:
return input.take_focus();
case FL_UNFOCUS:
{
input_cb(&input,this);
return 1;
}
case FL_PASTE:
return 0;
case FL_SHORTCUT:
return input.handle(event);
}
DEFAULT:
int r = Fl_SliderX::handle(event,
sxx+Fl::box_dx(box()),
syy+Fl::box_dy(box()),
sww-Fl::box_dw(box()),
shh-Fl::box_dh(box()));
if ( r )
{
return r;
}
else
{
input.type(((step() - floor(step()))>0.0 || step() == 0.0) ? FL_FLOAT_INPUT : FL_INT_INPUT);
return input.handle(event);
}
}

100
FL/Fl_Value_SliderX.H Normal file
View File

@ -0,0 +1,100 @@
/*******************************************************************************/
/* Copyright (C) 2009 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#ifndef Fl_Value_SliderX_H
#define Fl_Value_SliderX_H
#include "Fl_SliderX.H"
#include <FL/Fl_Input.H>
/**
The Fl_Value_SliderX widget is a Fl_SliderX widget
with a box displaying the current value.
<P ALIGN=CENTER>\image html value_slider.png
\image latex value_slider.png "Fl_Value_SliderX" width=4cm
*/
class FL_EXPORT Fl_Value_SliderX : public Fl_SliderX {
/* This is the encapsulated Fl_input attribute to which
this class delegates the value font, color and shortcut */
Fl_Input input;
private:
char soft_;
static void input_cb(Fl_Widget*,void*);
virtual void value_damage(); // cause damage() due to value() changing
protected:
void draw();
public:
int handle(int);
Fl_Value_SliderX(int x,int y,int w,int h, const char *l = 0);
virtual ~Fl_Value_SliderX ( );
/** See void Fl_Value_Input::soft(char s) */
void soft(char s) {soft_ = s;}
/**
If "soft" is turned on, the user is allowed to drag
the value outside the range. If they drag the value to one of
the ends, let go, then grab again and continue to drag, they can
get to any value. The default is true.
*/
char soft() const {return soft_;}
/**
Returns the current shortcut key for the Input.
\see Fl_Value_Input::shortcut(int)
*/
int shortcut() const {return input.shortcut();}
/**
Sets the shortcut key to \p s. Setting this
overrides the use of '&' in the label(). The value is a bitwise
OR of a key and a set of shift flags, for example FL_ALT | 'a'
, FL_ALT | (FL_F + 10), or just 'a'. A value
of 0 disables the shortcut.
The key can be any value returned by
Fl::event_key(), but will usually be an ASCII letter. Use
a lower-case letter unless you require the shift key to be held down.
The shift flags can be any set of values accepted by
Fl::event_state(). If the bit is on that shift key must
be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in
the shift flags (zero for the other bits indicates a "don't care"
setting).
*/
void shortcut(int s) {input.shortcut(s);}
/** Gets the typeface of the text in the value box. */
Fl_Font textfont() const {return input.textfont();}
/** Sets the typeface of the text in the value box. */
void textfont(Fl_Font s) {input.textfont(s);}
/** Gets the size of the text in the value box. */
Fl_Fontsize textsize() const {return input.textsize();}
/** Sets the size of the text in the value box. */
void textsize(Fl_Fontsize s) {input.textsize(s);}
/** Gets the color of the text in the value box. */
Fl_Color textcolor() const {return input.textcolor();}
/** Sets the color of the text in the value box.*/
void textcolor(Fl_Color n) {input.textcolor(n);}
/** Gets the color of the text cursor. The text cursor is black by default. */
Fl_Color cursor_color() const {return input.cursor_color();}
/** Sets the color of the text cursor. The text cursor is black by default. */
void cursor_color(Fl_Color n) {input.cursor_color(n);}
};
#endif

132
FL/New_Project_Dialog.fl Normal file
View File

@ -0,0 +1,132 @@
# data file for the Fltk User Interface Designer (fluid)
version 1.0300
header_name {.H}
code_name {.C}
comment {//
// Copyright (C) 2008 Jonathan Moore Liles
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
} {in_source in_header
}
decl {\#include <stdlib.h>} {private local
}
decl {\#include <string.h>} {private local
}
decl {\#include <stdio.h>} {private local
}
decl {\#include <FL/Fl_File_Chooser.H>} {private local
}
class New_Project_Dialog {open
} {
Function {New_Project_Dialog()} {open
} {
code {_default_path = 0;
path = 0;
make_window();} {}
}
Function {run()} {open return_type void
} {
code {_directory->value( _default_path );
_window->show();
while ( _window->shown() )
Fl::wait();} {}
}
Function {make_window()} {open
} {
Fl_Window _window {
label {New Project} open selected
xywh {743 696 550 105} type Double modal visible
} {
Fl_File_Input _name {
label {Named:}
xywh {75 55 375 35}
}
Fl_Button {} {
label Browse
callback {_directory->value( fl_dir_chooser( "Directory for new project", NULL, 0 ) );}
xywh {455 15 80 35}
}
Fl_Return_Button {} {
label Create
callback {if ( strlen( _directory->value() ) && strlen( _name->value() ) )
{
char pat[1024];
snprintf( pat, sizeof( pat ), "%s/%s", _directory->value(), _name->value() );
path = strdup( pat );
_default_path = _directory->value() ? strdup( _directory->value() ) : 0;
//if ( ! Project::create( pat, _template->text( _template->value() ) ) )
// fl_alert( "Error creating project!" );
_window->hide();
}}
xywh {455 55 80 35}
}
Fl_File_Input _directory {
label {Where:}
callback {if ( ! fl_filename_isdir( o->value() ) )
{
fl_alert( "Must be a directory" );
o->value( "" );
return;
}
// write_line( user_config_dir, "default_path", o->value() );}
xywh {75 15 375 35}
code0 {\#include <FL/filename.H>}
code1 {char *v = NULL;}
code2 {// read_line( user_config_dir, "default_path", &v );}
code3 {o->value( v );}
}
}
}
decl {char *path;} {public local
}
decl {char *_default_path} {private local
}
Function {default_path( char *s )} {open return_type void
} {
code {_default_path = s;} {}
}
Function {default_path()} {open return_type {char *}
} {
code {return _default_path;} {}
}
}
Function {new_project_chooser( char **default_path)} {open C return_type {char*}
} {
code {New_Project_Dialog nsd;
nsd.default_path( *default_path );
nsd.run();
if ( nsd.default_path() )
*default_path = nsd.default_path();
return nsd.path;} {}
}

52
FL/event_name.C Normal file
View File

@ -0,0 +1,52 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
static const char *event_names[] =
{
"FL_NO_EVENT",
"FL_PUSH",
"FL_RELEASE",
"FL_ENTER",
"FL_LEAVE",
"FL_DRAG",
"FL_FOCUS",
"FL_UNFOCUS",
"FL_KEYDOWN",
"FL_KEYUP",
"FL_CLOSE",
"FL_MOVE",
"FL_SHORTCUT",
"FL_DEACTIVATE",
"FL_ACTIVATE",
"FL_HIDE",
"FL_SHOW",
"FL_PASTE",
"FL_SELECTIONCLEAR",
"FL_MOUSEWHEEL",
"FL_DND_ENTER",
"FL_DND_DRAG",
"FL_DND_LEAVE",
"FL_DND_RELEASE",
};
const char *
event_name ( int m )
{
return event_names[ m ];
}

20
FL/event_name.H Normal file
View File

@ -0,0 +1,20 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
const char *event_name ( int m );

103
FL/focus_frame.C Normal file
View File

@ -0,0 +1,103 @@
/*******************************************************************************/
/* Copyright (C) 2012 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include <FL/Fl.H>
#include <FL/fl_draw.H>
void
draw_focus_frame ( int x, int y, int w, int h, Fl_Color c )
{
fl_push_clip( x, y, w, h );
// fl_color( fl_color_average( FL_GRAY, c, 0.50 ) );
/* fl_color( fl_color_add_alpha( c, 100 ) ); */
/* fl_line_style( FL_DASH, 2 ); */
/* fl_rect( x, y, w, h ); */
fl_line_style( FL_SOLID, 3 );
fl_color( c );
int l = 15;
fl_line( x, y, x + l, y );
fl_line( x, y + l, x, y );
fl_line( x + w - 1, y, x + w - l - 1, y );
fl_line( x + w - 1, y, x + w - 1, y + l - 1 );
fl_line( x, y + h - 1, x, y + h - l - 1);
fl_line( x, y + h - 1, x + l, y + h - 1 );
fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 );
fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 );
fl_line_style( FL_SOLID, 0 );
fl_pop_clip();
}
void
draw_selection_frame ( int x, int y, int w, int h, Fl_Color c )
{
fl_push_clip( x, y, w, h );
fl_color( fl_color_average( FL_GRAY, c, 0.50 ) );
/// fl_color( fl_color_add_alpha( c, 100 ) );
fl_line_style( FL_DASH, 2 );
fl_rect( x, y, w, h );
fl_line_style( FL_SOLID, 3 );
fl_color( c );
int l = 15;
fl_line( x, y, x + l, y );
fl_line( x, y + l, x, y );
fl_line( x + w - 1, y, x + w - l - 1, y );
fl_line( x + w - 1, y, x + w - 1, y + l - 1 );
fl_line( x, y + h - 1, x, y + h - l - 1);
fl_line( x, y + h - 1, x + l, y + h - 1 );
fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 );
fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 );
fl_line_style( FL_SOLID, 0 );
fl_pop_clip();
}
bool
focused_r ( Fl_Widget *w )
{
for ( Fl_Widget *p = Fl::focus(); p; p = p->parent() )
if ( p == w )
return true;
return false;
}

22
FL/focus_frame.H Normal file
View File

@ -0,0 +1,22 @@
/*******************************************************************************/
/* Copyright (C) 2012 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
void draw_focus_frame ( int x, int y, int w, int h, Fl_Color c );
void draw_selection_frame ( int x, int y, int w, int h, Fl_Color c );
bool focused_r ( Fl_Widget *w );

View File

@ -0,0 +1,61 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
static unsigned char img_io_input_connector_10x10_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0a,
0x08, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x32, 0xcf, 0xbd, 0x00, 0x00, 0x00,
0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x00,
0x9e, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x22, 0xcb, 0xc6, 0x03, 0x00, 0x00,
0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00,
0x00, 0x01, 0x51, 0x49, 0x44, 0x41, 0x54, 0x18, 0x95, 0x3d, 0xd0, 0xb1,
0x6a, 0xdb, 0x40, 0x1c, 0xc0, 0xe1, 0x9f, 0x72, 0x7f, 0xcc, 0x21, 0xbc,
0xc5, 0x87, 0xb0, 0xb7, 0x18, 0x6c, 0xa8, 0x49, 0x37, 0x1b, 0x8c, 0x26,
0xdb, 0x19, 0xfb, 0x0e, 0x7e, 0x82, 0xee, 0x21, 0x53, 0xe9, 0x14, 0x42,
0x37, 0x37, 0x7b, 0x9e, 0xa2, 0x63, 0x07, 0x6b, 0xd6, 0xec, 0xc5, 0xe0,
0x80, 0xc1, 0x08, 0xac, 0x66, 0xf0, 0xa0, 0xb3, 0x90, 0x4e, 0xa7, 0x4e,
0xed, 0xf6, 0xcd, 0x5f, 0xd0, 0xb6, 0x2d, 0x00, 0xfb, 0xfd, 0xfe, 0x4b,
0x59, 0x96, 0x8f, 0x4d, 0xd3, 0xdc, 0x01, 0x4e, 0x44, 0xf2, 0x30, 0x0c,
0x9f, 0x86, 0xc3, 0xe1, 0x6f, 0x80, 0xa0, 0x6d, 0x5b, 0x76, 0xbb, 0xdd,
0xb7, 0xf3, 0xf9, 0xfc, 0x35, 0x4d, 0xd3, 0x5e, 0x96, 0x65, 0x78, 0xef,
0x19, 0x0c, 0x06, 0x4c, 0xa7, 0xd3, 0x8f, 0x28, 0x8a, 0x7e, 0x4e, 0x26,
0x93, 0xef, 0x6a, 0xbd, 0x5e, 0x3f, 0x9c, 0x4e, 0xa7, 0x1f, 0x49, 0x92,
0xf4, 0x2e, 0x97, 0x0b, 0xdb, 0xed, 0x96, 0xe3, 0xf1, 0x88, 0x31, 0x86,
0x2c, 0xcb, 0x42, 0x63, 0xcc, 0x7d, 0x5d, 0xd7, 0xbb, 0x1b, 0x6b, 0xed,
0x73, 0x9a, 0xa6, 0xb7, 0x00, 0x4a, 0x29, 0x44, 0x04, 0x11, 0x41, 0x29,
0x05, 0x40, 0x9a, 0xa6, 0xbd, 0xb2, 0x2c, 0x1f, 0xc5, 0x39, 0x67, 0xac,
0xb5, 0x78, 0xef, 0x09, 0x82, 0x80, 0xd5, 0x6a, 0x45, 0x10, 0x04, 0xb4,
0x6d, 0x8b, 0x73, 0x8e, 0xa2, 0x28, 0x68, 0x9a, 0xe6, 0x4e, 0x00, 0xf1,
0xde, 0x93, 0x24, 0x09, 0x45, 0x51, 0x10, 0xc7, 0x31, 0x22, 0x42, 0x92,
0x24, 0x68, 0xad, 0x59, 0x2e, 0x97, 0x00, 0xee, 0x46, 0x29, 0xf5, 0xde,
0xed, 0x76, 0xb9, 0x5e, 0xaf, 0x78, 0xef, 0xa9, 0xaa, 0x8a, 0xaa, 0xaa,
0xfe, 0x5b, 0x6b, 0x8d, 0x88, 0xe4, 0xa2, 0xb5, 0x7e, 0x99, 0xcd, 0x66,
0x9f, 0xf2, 0x3c, 0xef, 0x59, 0x6b, 0x31, 0xc6, 0x00, 0x10, 0xc7, 0x31,
0x9d, 0x4e, 0x87, 0xf9, 0x7c, 0xfe, 0x11, 0x86, 0xe1, 0x93, 0xda, 0x6c,
0x36, 0x7b, 0x6b, 0x6d, 0xd8, 0xef, 0xf7, 0x3f, 0x5b, 0x6b, 0xc3, 0xba,
0xae, 0x01, 0x30, 0xc6, 0xb0, 0x58, 0x2c, 0xfe, 0x44, 0x51, 0xf4, 0x3a,
0x1e, 0x8f, 0xdf, 0x82, 0x7f, 0xe1, 0x87, 0xc3, 0xe1, 0xc1, 0x5a, 0xfb,
0xec, 0x9c, 0x33, 0x80, 0x28, 0xa5, 0xde, 0xb5, 0xd6, 0x2f, 0xa3, 0xd1,
0xe8, 0x17, 0xc0, 0x5f, 0xd1, 0x17, 0xa6, 0x12, 0x83, 0xc3, 0x30, 0x9b,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
static unsigned int img_io_input_connector_10x10_png_len = 468;

View File

@ -0,0 +1,63 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
static unsigned char img_io_output_connector_10x10_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0a,
0x08, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x32, 0xcf, 0xbd, 0x00, 0x00, 0x00,
0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x00,
0x9e, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x22, 0xcb, 0xc6, 0x03, 0x00, 0x00,
0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63,
0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00,
0x00, 0x01, 0x61, 0x49, 0x44, 0x41, 0x54, 0x18, 0x95, 0x35, 0xd0, 0xbf,
0x6a, 0xc2, 0x40, 0x00, 0x07, 0xe0, 0xdf, 0xfd, 0x89, 0xe4, 0x32, 0xc4,
0x40, 0xed, 0x22, 0x9c, 0x50, 0x24, 0x99, 0x1c, 0xdc, 0x33, 0x38, 0x64,
0xec, 0x03, 0x14, 0x9c, 0xd4, 0xb9, 0x7b, 0xe9, 0x54, 0x3a, 0x95, 0xd2,
0xb1, 0x1d, 0x74, 0xeb, 0xe4, 0xec, 0xd2, 0x31, 0x01, 0x9f, 0x40, 0x04,
0xe9, 0x10, 0x85, 0x06, 0x1c, 0x6d, 0x40, 0x34, 0xe4, 0xd0, 0x0b, 0x5e,
0xa7, 0x7e, 0x8f, 0xf0, 0x11, 0x63, 0x0c, 0x00, 0x60, 0xbd, 0x5e, 0xdf,
0x96, 0x65, 0xf9, 0xa0, 0xb5, 0xbe, 0x21, 0x84, 0x54, 0x9c, 0xf3, 0x9d,
0x10, 0xe2, 0x31, 0x08, 0x82, 0x18, 0x00, 0x88, 0x31, 0x06, 0xab, 0xd5,
0xea, 0x69, 0xbb, 0xdd, 0xde, 0x27, 0x49, 0xd2, 0xb0, 0x6d, 0x1b, 0x8c,
0x31, 0x14, 0x45, 0x81, 0x28, 0x8a, 0x72, 0x29, 0xe5, 0x7b, 0xa7, 0xd3,
0x79, 0x66, 0xfd, 0x7e, 0x3f, 0xca, 0xb2, 0xec, 0x6d, 0x36, 0x9b, 0x35,
0x84, 0x10, 0x18, 0x8d, 0x46, 0xe8, 0x76, 0xbb, 0x58, 0x2e, 0x97, 0x58,
0x2c, 0x16, 0x4e, 0xb3, 0xd9, 0xec, 0x00, 0xf8, 0xa6, 0x4a, 0xa9, 0x97,
0x38, 0x8e, 0xaf, 0x00, 0x40, 0x6b, 0x8d, 0xf3, 0xf9, 0x8c, 0xd3, 0xe9,
0x04, 0xad, 0x35, 0x00, 0x20, 0x49, 0x92, 0x46, 0x59, 0x96, 0x0f, 0xbc,
0xaa, 0xaa, 0xeb, 0xe3, 0xf1, 0x08, 0xc6, 0x18, 0x2e, 0x97, 0x0b, 0xc6,
0xe3, 0x31, 0x8c, 0x31, 0xa0, 0x94, 0xa2, 0x56, 0xab, 0xe1, 0x70, 0x38,
0x40, 0x6b, 0x7d, 0xc3, 0x8d, 0x31, 0x9c, 0x52, 0x8a, 0xe1, 0x70, 0x08,
0xcf, 0xf3, 0x30, 0x9d, 0x4e, 0xa1, 0xb5, 0xc6, 0x60, 0x30, 0x40, 0x51,
0x14, 0x98, 0x4c, 0x26, 0x20, 0x84, 0x54, 0xd4, 0xb2, 0xac, 0x1f, 0xd7,
0x75, 0xe1, 0xba, 0x2e, 0x38, 0xe7, 0x70, 0x1c, 0x07, 0x42, 0x08, 0x30,
0xc6, 0x60, 0xdb, 0x36, 0x3c, 0xcf, 0x03, 0xe7, 0x7c, 0x47, 0xd2, 0x34,
0xbd, 0xdd, 0x6c, 0x36, 0x9f, 0xf3, 0xf9, 0xbc, 0x51, 0xaf, 0xd7, 0x91,
0x65, 0x19, 0x00, 0xa0, 0xd5, 0x6a, 0x41, 0x29, 0x85, 0x30, 0x0c, 0xf3,
0x76, 0xbb, 0x7d, 0x47, 0x7d, 0xdf, 0xff, 0x92, 0x52, 0x7e, 0xf4, 0x7a,
0xbd, 0x3c, 0xcf, 0x73, 0xfc, 0xdb, 0xef, 0xf7, 0x08, 0xc3, 0xf0, 0x57,
0x4a, 0xf9, 0x1e, 0x04, 0x41, 0x4c, 0xfe, 0xc3, 0xd3, 0x34, 0x8d, 0x94,
0x52, 0x2f, 0x55, 0x55, 0x5d, 0x1b, 0x63, 0xb8, 0x65, 0x59, 0x3f, 0x8e,
0xe3, 0xbc, 0xfa, 0xbe, 0xff, 0x05, 0x00, 0x7f, 0xb0, 0xa3, 0x9e, 0x20,
0x9c, 0xde, 0x99, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
0xae, 0x42, 0x60, 0x82
};
static unsigned int img_io_output_connector_10x10_png_len = 484;

1
FL/lib Symbolic link
View File

@ -0,0 +1 @@
../lib

61
FL/menu_popup.C Normal file
View File

@ -0,0 +1,61 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include <FL/Fl.H>
#include <FL/Fl_Menu_.H>
#include <FL/Fl_Menu_Item.H>
/** popup menu and execute callback */
bool
menu_popup ( Fl_Menu_ *m, int X, int Y )
{
const Fl_Menu_Item *r = m->menu()->popup( X, Y, m->label() );
if ( r )
{
m->value( r );
if ( r->callback() )
r->do_callback( static_cast<Fl_Widget*>(m) );
else if ( m->callback() )
m->do_callback( static_cast<Fl_Widget*>(m), m->user_data() );
return true;
}
return false;
}
/** popup menu and execute callback */
bool
menu_popup ( Fl_Menu_ *m )
{
return menu_popup( m, Fl::event_x(), Fl::event_y() );
}
/** set a single callback for all items in menu. */
void
menu_set_callback( Fl_Menu_Item *menu, void (*callback)( Fl_Widget *, void * ), void *user_data )
{
for ( int i = menu->size(); i--; )
if ( menu[i].label() && ! menu[i].submenu() )
{
menu[i].callback( callback );
menu[i].user_data( user_data );
}
}

26
FL/menu_popup.H Normal file
View File

@ -0,0 +1,26 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
class Fl_Menu_;
struct Fl_Menu_Item;
class Fl_Widget;
bool menu_popup ( Fl_Menu_ *m, int X, int Y );
bool menu_popup ( Fl_Menu_ *m );
void menu_set_callback ( Fl_Menu_Item *menu, void (*callback)( Fl_Widget *, void * ), void *user_data );

40
FL/test_press.C Normal file
View File

@ -0,0 +1,40 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
/* Fl::test_shortcut() is broken for use in FL_PUSH handlers etc,
* because it relies on Fl::event_text(), which isn't cleared as it
* should be--and there's no official way to clear it. Therefore, we
* provide a test_press() function instead, which, unlike
* test_shortcut(), does not treat a missing FL_SHIFT as "don't care". */
#include <FL/Fl.H>
int
test_press ( unsigned long e )
{
if ( Fl::event_text()[0] )
((char *)Fl::event_text())[0] = '\0';
const int mod_mask = FL_SHIFT | FL_ALT | FL_CTRL;
if ( ( e & mod_mask ) != ( Fl::event_state() & mod_mask ) )
return false;
else
return Fl::test_shortcut( e );
}

20
FL/test_press.H Normal file
View File

@ -0,0 +1,20 @@
/*******************************************************************************/
/* Copyright (C) 2008 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
int test_press ( unsigned long e );

163
FL/util/ntk-perf.C Normal file
View File

@ -0,0 +1,163 @@
/*******************************************************************************/
/* Copyright (C) 2012 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include <FL/Fl.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Single_Window.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Choice.H>
#include <FL/fl_draw.H>
#include <sys/time.h>
#include <stdio.h>
static Fl_Boxtype boxtype = FL_UP_BOX;
#include <unistd.h>
unsigned long long tv_to_ts ( timeval *tv )
{
return tv->tv_sec * 1e6 + tv->tv_usec;
}
unsigned long long get_ts ( void )
{
struct timeval then;
gettimeofday( &then, NULL );
return tv_to_ts( &then );
}
class PerfTest : public Fl_Widget
{
public:
PerfTest ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Widget( X, Y, W, H, L )
{
align(FL_ALIGN_TOP | FL_ALIGN_RIGHT |FL_ALIGN_INSIDE);
box(FL_UP_BOX);
labelcolor( FL_WHITE );
use_cairo = false;
}
bool use_cairo;
void draw ( void )
{
if ( use_cairo )
fl_push_use_cairo(true);
fl_rectf( x(), y(), w(), h(), FL_BLACK );
unsigned long long then = get_ts();
fl_push_clip( x(), y(), w(), h() );
int count = 400;
/* draw stuff */
int i = 0;
for ( ; i < count; ++i )
fl_draw_box( boxtype, x(), y(), w(), h(), fl_lighter( FL_BLACK ) );
fl_pop_clip();
unsigned long long now = get_ts();
double elapsedms = (now - then) / 1000.0;
static char text[256];
sprintf( text, "Drew %i boxes in in %fms", i, elapsedms );
fl_color( FL_RED );
fl_draw( text, x(), y(), w(), h(), FL_ALIGN_CENTER | FL_ALIGN_INSIDE );
draw_label();
if ( use_cairo )
fl_pop_use_cairo();
}
};
void
boxtype_cb ( Fl_Widget *w, void *v )
{
const char *picked = ((Fl_Choice*)w)->mvalue()->label();
if ( !strcmp( picked, "UP_BOX" ) )
boxtype = FL_UP_BOX;
else if ( !strcmp( picked, "FLAT_BOX" ) )
boxtype = FL_FLAT_BOX;
else if ( !strcmp( picked, "ROUNDED_BOX" ) )
boxtype = FL_ROUNDED_BOX;
else if ( !strcmp( picked, "OVAL_BOX" ) )
boxtype = FL_OVAL_BOX;
w->window()->redraw();
}
int
main ( int argc, char **argv )
{
{
Fl_Single_Window *w = new Fl_Single_Window( 800, 600 );
{ Fl_Choice *o = new Fl_Choice( 0, 0, 200, 24, "Boxtype" );
o->align( FL_ALIGN_RIGHT );
o->callback( boxtype_cb, NULL );
o->add( "UP_BOX" );
o->add( "FLAT_BOX" );
o->add( "ROUNDED_BOX" );
o->add( "OVAL_BOX" );
}
{
Fl_Pack *o = new Fl_Pack( 0, 24, 800, 600 - 24 );
o->type( 0 );
{
PerfTest *o = new PerfTest( 0,0, 800, 400, "Xlib" );
}
{
PerfTest *o = new PerfTest( 0,0, 800, 400, "Cairo" );
o->use_cairo = true;
}
o->end();
}
w->end();
w->show();
}
/* { */
/* Fl_Single_Window *w = new Fl_Single_Window( 800, 600 ); */
/* PerfTest *o = new PerfTest( 0,0, 800, 600 ); */
/* w->end(); */
/* w->show(); */
/* } */
Fl::run();
}

29
FL/wscript Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env python
def options(opt):
pass
def configure(conf):
pass
def build(bld):
bld.stlib(
source =
'''
About_Dialog.fl
Fl_Menu_Settings.C
Fl_Scalepack.C
Fl_Text_Edit_Window.fl
Fl_Value_SliderX.C
Fl_DialX.C
Fl_SliderX.C
New_Project_Dialog.fl
event_name.C
menu_popup.C
test_press.C
focus_frame.C
''',
includes = '.',
export_incdirs = [ '.' 'FL' ],
uselib = 'PTHREAD NTK',
target = 'fl_widgets')

144
Makefile
View File

@ -1,144 +0,0 @@
###############################################################################
# Copyright (C) 2007-2008 Jonathan Moore Liles #
# #
# This program is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the #
# Free Software Foundation; either version 2 of the License, or (at your #
# option) any later version. #
# #
# This program is distributed in the hope that it will be useful, but WITHOUT #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
# more details. #
# #
# You should have received a copy of the GNU General Public License along #
# with This program; see the file COPYING. If not,write to the Free Software #
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #
###############################################################################
# Makefile for the Non Sequencer.
#
# Do not edit this file; run `make config` instead.
#
VERSION := 1.9.4
all: .config non-sequencer
.config: configure
@ ./configure
config:
@ ./configure
-include .config
SYSTEM_PATH=$(prefix)/share/non-sequencer/
DOCUMENT_PATH=$(prefix)/share/doc/non-sequencer/
PIXMAP_PATH:=$(prefix)/share/pixmaps/non-sequencer/
ICON_PATH:=$(prefix)/share/icons/
DESKTOP_PATH:=$(prefix)/share/applications/
# a bit of a hack to make sure this runs before any rules
ifneq ($(CALCULATING),yes)
TOTAL := $(shell $(MAKE) CALCULATING=yes -n 2>/dev/null | sed -n 's/^.*Compiling: \([^"]\+\)"/\1/p' > .files )
endif
ifeq ($(USE_DEBUG),yes)
CXXFLAGS := -pipe -ggdb -Wall -Wextra -Wnon-virtual-dtor -Wno-missing-field-initializers -O0 -fno-rtti -fno-exceptions
else
CXXFLAGS := -pipe -O2 -fno-rtti -fno-exceptions -DNDEBUG
endif
CFLAGS+=-DINSTALL_PREFIX=\"$(prefix)\" \
-DSYSTEM_PATH=\"$(SYSTEM_PATH)\" \
-DDOCUMENT_PATH=\"$(DOCUMENT_PATH)\" \
-DPIXMAP_PATH=\"$(PIXMAP_PATH)\"
CXXFLAGS:=$(CFLAGS) $(CXXFLAGS) $(FLTK_CFLAGS) $(SIGCPP_CFLAGS) $(LIBLO_CFLAGS) $(XPM_CFLAGS)
LIBS:=$(FLTK_LIBS) $(JACK_LIBS) $(SIGCPP_LIBS) $(LIBLO_LIBS) $(XPM_LIBS)
ifeq ($(JACK_MIDI_PROTO_API),yes)
CXXFLAGS+=-DJACK_MIDI_PROTO_API
endif
# uncomment this line to print each playback event to the console (not RT safe)
# CXXFLAGS+= -DDEBUG_EVENTS
SRCS:=$(wildcard src/*.C src/gui/*.fl src/gui/*.C src/NSM/*.C)
SRCS:=$(SRCS:.fl=.C)
SRCS:=$(sort $(SRCS))
OBJS:=$(SRCS:.C=.o)
.PHONEY: all clean install dist valgrind config
clean:
rm -f non-sequencer .deps $(OBJS)
@ echo "$(DONE)"
valgrind:
valgrind ./non-sequencer
include scripts/colors
ifneq ($(CALCULATING),yes)
COMPILING="$(BOLD)$(BLACK)[$(SGR0)$(CYAN)`scripts/percent-complete .files "$<"`$(SGR0)$(BOLD)$(BLACK)]$(SGR0) Compiling: $(BOLD)$(YELLOW)$<$(SGR0)"
else
COMPILING="Compiling: $<"
endif
.C.o:
@ echo $(COMPILING)
@ $(CXX) $(CXXFLAGS) -c $< -o $@
%.C : %.fl
@ cd $(dir $<) && fluid -c $(notdir $<)
$(OBJS): .config
DONE:=$(BOLD)$(GREEN)done$(SGR0)
non-sequencer: $(OBJS)
@ echo -n "Linking..."
@ rm -f $@
@ scripts/build_id .version.c $(VERSION)
@ $(CXX) -c .version.c
@ $(CXX) $(CXXFLAGS) $(LIBS) $(OBJS) .version.o -o $@ || echo "$(BOLD)$(RED)Error!$(SGR0)"
@ if test -x $@; then echo "$(DONE)"; test -x "$(prefix)/bin/$@" || echo "You must now run 'make install' (as the appropriate user) to install the executable, documentation and other support files in order for the program to function properly."; fi
install: all
@ echo -n "Installing..."
@ install -d $(DESTDIR)$(prefix)/bin
@ install -m 755 non-sequencer $(DESTDIR)$(prefix)/bin
@ install -d "$(DESTDIR)$(SYSTEM_PATH)/instruments"
@ install -m 644 instruments/* "$(DESTDIR)$(SYSTEM_PATH)/instruments"
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)"
@ install -m 644 doc/*.html doc/*.png "$(DESTDIR)$(DOCUMENT_PATH)"
@ install -d "$(DESTDIR)$(PIXMAP_PATH)"
@ install -m 644 icons/hicolor/256x256/apps/non-sequencer.png "$(DESTDIR)$(PIXMAP_PATH)"/icon-256x256.png
@ install -d "$(DESTDIR)$(ICON_PATH)/hicolor"
@ cp -au icons/hicolor/ "$(DESTDIR)$(ICON_PATH)"
@ install -d "$(DESTDIR)$(DESKTOP_PATH)"
@ sed 's:@BIN_PATH@:$(prefix)/bin:' non-sequencer.desktop.in > "$(DESTDIR)$(DESKTOP_PATH)/non-sequencer.desktop"
@ echo "$(DONE)"
ifneq ($(USE_DEBUG),yes)
@ echo -n "Stripping..."
@ strip $(DESTDIR)$(prefix)/bin/non-sequencer
@ echo "$(DONE)"
endif
dist:
git archive --prefix=non-sequencer-$(VERSION)/ v$(VERSION) | bzip2 > non-sequencer-$(VERSION).tar.bz2
TAGS: $(SRCS)
etags $(SRCS)
.deps: .config $(SRCS)
@ echo -n Calculating dependencies...
@ makedepend -f- -- $(CXXFLAGS) $(INCLUDES) -- $(SRCS) > .deps 2>/dev/null && echo $(DONE)
-include .deps

51
README.build Normal file
View File

@ -0,0 +1,51 @@
# -*- mode: org -*-
* Non-things build instructions
This repository contains all of the non-* software.
** Getting NTK
If you just cloned the non repository or just executed git pull, then
you should also run
git submodule update --init
to pull down the latest NTK code required by Non. Git does *not* do
this automatically.
** Building NTK
If you don't have NTK installed system-wide (which isn't very likely
yet) you *MUST* begin the build process by typing:
cd lib/ntk
./waf configure
./waf
Once NTK has been built you must install it system-wide before
attempting to build the non-* programs.
To install NTK type:
su -c './waf install'
** Build all projects
Typing:
./waf configure
./waf
su -c './waf install'
from the base of the checkout of the Non git repository will build and
install all of the non-* programs together.
** Build a single project
Typing:
./waf configure --project=[timline|sequencer|mixer|session-manager]
./waf
su -c './waf install'

28
README.packagers Normal file
View File

@ -0,0 +1,28 @@
# -*- mode: org -*-
* Notes to Packagers
Non-Mixer, Non-DAW, and Non-Session-Manager, although stored in the
same repository, are completely independent programs which can be
built and packaged separately (see README.build)
If you're having trouble adapting to Non's build system, please
contact me directly or post to one of the Non mailing lists with your
issue rather than just attempting to hack past the build system.
Also, if your distribution has quirks prevent Non-* from building,
please send me a message about it, as I'd like to know about these
issues so that I can incorporate that knowledge into the build system
so those building Non-* directly from the repository on those
distributions can also benefit!
Also, please stop telling people I'm dead. I'm not dead--I'm just
practicing. If you were me, you might be dead, but I'm not. So,
seriously, stop it.
Thanks,
Jonathan Moore Liles <male@tuxfamily.net>
P.S. Furthermore, please quit listing crazy random stuff as dependencies.

28
configure vendored
View File

@ -1,28 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2008 Jonathan Moore Liles
# This file is licensed under version 2 of the GPL.
. scripts/config-funcs
begin
begin_options
ask "Installation prefix" prefix /usr/local
ask "Build for debugging" USE_DEBUG no
begin_tests
require_FLTK 1.1.7 images
require_command FLUID fluid
require_package JACK 0.103.0 jack
suggest_package XPM 2.0.0 xpm
test_version `version_of jack` 0.105.0 || append "JACK_MIDI_PROTO_API=yes"
require_package liblo 0.23 liblo
test_version `version_of liblo` 0.26 || warn "Version $(version_of liblo) of liblo is slow to create servers. Consider upgrading to 0.26 or later"
require_package sigcpp 2.0.0 sigc++-2.0
end

View File

@ -1,19 +0,0 @@
SRCS=$(wildcard *.mu)
OBJS=$(SRCS:.mu=.html)
%.html: %.mu
@ echo Mupping $<...
@ mup.wrapper html $<
.PHONY: all clean
all: $(OBJS)
upload: all
@ ln -sf OVERVIEW.html index.html
@ rsync -L mup.css MANUAL.html index.html *.png ssh.tuxfamily.org:/home/non/non-sequencer.tuxfamily.org-web/htdocs
@ rm -f index.html
clean:
rm -f $(OBJS)

View File

@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta name="generator" content="Generated by MUP v3.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="mup.css">
<title>The Non Sequencer</title>
</head>
<body>
<div id=cover>
<h1>The Non Sequencer</h1>
<h3></h3>
<address>
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org">&lt;male@tuxfamily.org&gt;</a><br>
<br>
</address><img src="icon.png" alt="logo"><hr></div>
<div id=body>
<hr width=50%>
<h1 id="u:1.">Description</h1>
<p>
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for Linux--released under the GPL. Filling the void left by countless DAWs, piano-roll editors, and other purely performance based solutions, it is a compositional tool--one that transforms MIDI music-making on Linux from a complex nightmare into a pleasurable, efficient, and streamlined process.
</p>
<p>
Please see the <a class=ext href="MANUAL.html">manual</a> for more information.
</p>
<h1 id="u:2.">What it is not</h1>
<p>
Non is <b>not</b> a plain MIDI recorder, tracker, software synthesizer, notation editor or AI system. There are other programs available to do those things. Non is intended to be one tool among many in your Linux audio toolbox.
</p>
<p>
Everything in Non happens <i>on-line</i>, in realtime. Music is composed live, while the transport is running.
</p>
<h1 id="u:3.">What does freedom have to do with this software?</h1>
<p>
Non is <i>free software</i>. This means, briefly, that you are free use it as <b>you</b> wish, free to examine and adapt the source code, free to share it with your friends, and free to publish your changes to the source code. Furthermore, Non is <i>copyleft</i>, which means that you are free from the threat of some other entity taking over and denying you the above freedoms. The <i>free</i> part of <i>free software</i> doesn't refer to price any more than the <i>free</i> in <i>free speech</i> does.
</p>
<p>
To learn why free software is so important to us (and why it should be important to you), please see the Free Software Foundation's website:
</p>
<p>
<a class=ext href="http://www.fsf.org/licensing/essays/free-sw.html">What is Free Software?</a> <a class=ext href="http://www.fsf.org/licensing/essays/copyleft.html">What is Copyleft?</a>
</p>
<h1 id="u:4.">Donations</h1>
<p>
Donations can take many forms. You can donate your time in code, either by sending it to me for review or cloning the git repository and publishing one containing your changes. You can donate your time in testing, documentation, artwork, indexing, etc. Or, if you don't feel that you possess the time or skills required for the above forms of donation, you can donate money instead. Money donated will help to ensure that I have the free time, good nutrition and enthusiasm required to implement new features. It can also be a more palpable way of saying "Thanks for caring." or "Job well done!"
</p>
<p>
If you don't love this software, don't feel guilty about not contributing. If you do love it, then please help me improve it--in whatever manner you think is appropriate.
</p>
<p>
<a class=ext href="http://non.tuxfamily.org/donation.html">Make a donation</a>
</p>
<h1 id="u:5.">Distribution</h1>
<p>
Development of the Non Sequencer can be followed with Git:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
git clone git://git.tuxfamily.org/gitroot/non/sequencer.git
</pre></td></tr>
</table></div>
<p>
There are no pre-compiled binaries available.
</p>
<h1 id="u:6.">Requirements</h1>
<p>
The following libraries are required to build Non.
</p>
<ul><li><span>FLTK >= 1.1.7 (with `fluid`)</span>
<li><span>JACK >= 0.103.0</span>
<li><span>sigc++ 2.0</span>
</ul><p>
The following are optional:
</p>
<ul><li><span>LASH >= 0.5.4</span>
</ul><h1 id="u:7.">Community</h1>
<p>
Feel free to drop by the <tt>#non</tt> channel on irc.freenode.net.
</p>
<p>
There is a mailing list <tt>non-sequencer@lists.tuxfamily.org</tt>.
</p>
<p>
To subscribe, send a message with the subject 'subscribe' to <a href="mailto:non-sequencer-request@lists.tuxfamily.org">&lt;non-sequencer-request@lists.tuxfamily.org&gt;</a>.
</p>
<p>
You can also browse the <a class=ext href="http://listengine.tuxfamily.org/lists.tuxfamily.org/non-sequencer/">archive</a>.
</p>
</div>
</body>
</html>

View File

@ -1,95 +0,0 @@
! title The Non Sequencer
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
! extra #(image,logo,icon.png)
--
; Description
The Non Sequencer is a powerful real-time, pattern-based MIDI sequencer for
Linux--released under the GPL. Filling the void left by countless DAWs,
piano-roll editors, and other purely performance based solutions, it is a
compositional tool--one that transforms MIDI music-making on Linux from a
complex nightmare into a pleasurable, efficient, and streamlined process.
Please see the #(url,MANUAL.html,manual) for more information.
; What it is not
Non is *not* a plain MIDI recorder, tracker, software synthesizer, notation
editor or AI system. There are other programs available to do those things.
Non is intended to be one tool among many in your Linux audio toolbox.
Everything in Non happens /on-line/, in realtime. Music is composed live,
while the transport is running.
; What does freedom have to do with this software?
Non is /free software/. This means, briefly, that you are free use it as
*you* wish, free to examine and adapt the source code, free to share it with
your friends, and free to publish your changes to the source code.
Furthermore, Non is /copyleft/, which means that you are free from the threat
of some other entity taking over and denying you the above freedoms. The
/free/ part of /free software/ doesn't refer to price any more than the
/free/ in /free speech/ does.
To learn why free software is so important to us (and why it should be
important to you), please see the Free Software Foundation's website:
#(url,http:\/\/www.fsf.org\/licensing\/essays\/free-sw.html,What is Free Software?)
#(url,http:\/\/www.fsf.org\/licensing\/essays\/copyleft.html,What is Copyleft?)
; Donations
Donations can take many forms. You can donate your time in code, either by
sending it to me for review or cloning the git repository and publishing one
containing your changes. You can donate your time in testing, documentation,
artwork, indexing, etc. Or, if you don't feel that you possess the time or
skills required for the above forms of donation, you can donate money
instead. Money donated will help to ensure that I have the free time, good
nutrition and enthusiasm required to implement new features. It can also be
a more palpable way of saying "Thanks for caring." or "Job well done!"
If you don't love this software, don't feel guilty about not contributing. If
you do love it, then please help me improve it--in whatever manner you think
is appropriate.
#(url,http:\/\/non.tuxfamily.org\/donation.html,Make a donation)
; Distribution
Development of the Non Sequencer can be followed with Git:
> git clone git://git.tuxfamily.org/gitroot/non/sequencer.git
# or
#
# > git clone git://repo.or.gz/src/git/non.git
There are no pre-compiled binaries available.
; Requirements
The following libraries are required to build Non.
* FLTK >= 1.1.7 (with `fluid`)
* JACK >= 0.103.0
* sigc++ 2.0
The following are optional:
* LASH >= 0.5.4
; Community
Feel free to drop by the `#non` channel on irc.freenode.net.
There is a mailing list `non-sequencer@lists.tuxfamily.org`.
To subscribe, send a message with the subject 'subscribe' to
#(email,non-sequencer-request@lists.tuxfamily.org).
You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-sequencer\/,archive).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,998 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
id="svg2"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="icon-large.svg"
inkscape:export-filename="/home/male/prog/non-sequencer/doc/just-text.png"
inkscape:export-xdpi="141.06583"
inkscape:export-ydpi="141.06583"
style="enable-background:new">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient6483">
<stop
style="stop-color:#ffa903;stop-opacity:1"
offset="0"
id="stop6485" />
<stop
style="stop-color:#fea700;stop-opacity:0;"
offset="1"
id="stop6487" />
</linearGradient>
<linearGradient
id="linearGradient5418">
<stop
style="stop-color:#669a18;stop-opacity:1;"
offset="0"
id="stop5420" />
<stop
style="stop-color:#654d4d;stop-opacity:0;"
offset="1"
id="stop5422" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5021">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5023" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop5025" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5013">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5015" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop5017" />
</linearGradient>
<linearGradient
id="linearGradient4861">
<stop
style="stop-color:#a50000;stop-opacity:1;"
offset="0"
id="stop4863" />
<stop
style="stop-color:#a50000;stop-opacity:0;"
offset="1"
id="stop4865" />
</linearGradient>
<linearGradient
id="linearGradient5209"
osb:paint="solid">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5211" />
</linearGradient>
<filter
inkscape:collect="always"
id="filter5252"
x="-0.051939286"
width="1.1038786"
y="-0.80208468"
height="2.6041694"
color-interpolation-filters="sRGB">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="5.3552102"
id="feGaussianBlur5254" />
</filter>
<filter
id="filter6205"
inkscape:label="Black hole"
inkscape:menu="Morphology"
inkscape:menu-tooltip="Creates a black light inside and outside"
height="1.5"
width="1.5"
y="-0.25"
x="-0.25"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="feGaussianBlur6207"
stdDeviation="5"
in="SourceAlpha"
result="result1" />
<feComposite
id="feComposite6209"
in2="result1"
operator="arithmetic"
k2="3.2"
k1="-1"
k4="-2"
result="result3"
k3="0" />
<feColorMatrix
id="feColorMatrix6211"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
result="result2" />
<feComposite
id="feComposite6213"
in2="result2"
result="fbSourceGraphic"
in="SourceGraphic"
operator="out" />
<feBlend
id="feBlend6215"
in2="fbSourceGraphic"
mode="multiply"
in="result1"
result="result91" />
<feBlend
id="feBlend6217"
in2="result91"
mode="screen"
in="fbSourceGraphic" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6759-3"
id="radialGradient6767-0"
cx="103.21429"
cy="213.43361"
fx="103.21429"
fy="213.43361"
r="8.2009745"
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient6759-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6761-5" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop6763-9" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6759-2"
id="radialGradient6767-9"
cx="103.21429"
cy="213.43361"
fx="103.21429"
fy="213.43361"
r="8.2009745"
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient6759-2">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6761-9" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop6763-0" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient6759-2-4"
id="radialGradient6846-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0160278,0,-3.4208767)"
cx="103.21429"
cy="213.43361"
fx="103.21429"
fy="213.43361"
r="8.2009745" />
<linearGradient
inkscape:collect="always"
id="linearGradient6759-2-4">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop6761-9-1" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop6763-0-7" />
</linearGradient>
<filter
id="filter4094"
inkscape:label="Black hole"
inkscape:menu="Morphology"
inkscape:menu-tooltip="Creates a black light inside and outside"
height="1.5"
width="1.5"
y="-0.25"
x="-0.25"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="feGaussianBlur4096"
stdDeviation="5"
in="SourceAlpha"
result="result1" />
<feComposite
id="feComposite4098"
in2="result1"
operator="arithmetic"
k2="3.2"
k1="-1"
k4="-2"
result="result3"
k3="0" />
<feColorMatrix
id="feColorMatrix4100"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
result="result2" />
<feComposite
id="feComposite4102"
in2="result2"
result="fbSourceGraphic"
in="SourceGraphic"
operator="out" />
<feBlend
id="feBlend4104"
in2="fbSourceGraphic"
mode="multiply"
in="result1"
result="result91" />
<feBlend
id="feBlend4106"
in2="result91"
mode="screen"
in="fbSourceGraphic" />
</filter>
<filter
id="filter4108"
inkscape:label="Black hole"
inkscape:menu="Morphology"
inkscape:menu-tooltip="Creates a black light inside and outside"
height="1.5"
width="1.5"
y="-0.25"
x="-0.25"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="feGaussianBlur4110"
stdDeviation="5"
in="SourceAlpha"
result="result1" />
<feComposite
id="feComposite4112"
in2="result1"
operator="arithmetic"
k2="3.2"
k1="-1"
k4="-2"
result="result3"
k3="0" />
<feColorMatrix
id="feColorMatrix4114"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
result="result2" />
<feComposite
id="feComposite4116"
in2="result2"
result="fbSourceGraphic"
in="SourceGraphic"
operator="out" />
<feBlend
id="feBlend4118"
in2="fbSourceGraphic"
mode="multiply"
in="result1"
result="result91" />
<feBlend
id="feBlend4120"
in2="result91"
mode="screen"
in="fbSourceGraphic" />
</filter>
<filter
id="filter2996"
inkscape:label="Black hole"
inkscape:menu="Morphology"
inkscape:menu-tooltip="Creates a black light inside and outside"
height="1.5"
width="1.5"
y="-0.25"
x="-0.25"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="feGaussianBlur2998"
stdDeviation="5"
in="SourceAlpha"
result="result1" />
<feComposite
id="feComposite3000"
in2="result1"
operator="arithmetic"
k2="3.2"
k1="-1"
k4="-2"
result="result3"
k3="0" />
<feColorMatrix
id="feColorMatrix3002"
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 10 0 "
result="result2" />
<feComposite
id="feComposite3004"
in2="result2"
result="fbSourceGraphic"
in="SourceGraphic"
operator="out" />
<feBlend
id="feBlend3006"
in2="fbSourceGraphic"
mode="multiply"
in="result1"
result="result91" />
<feBlend
id="feBlend3008"
in2="result91"
mode="screen"
in="fbSourceGraphic" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4523-5"
id="linearGradient4533-8"
x1="40.691368"
y1="-5.0138588"
x2="115.70895"
y2="122.54021"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.4285714,-0.26785715)" />
<linearGradient
inkscape:collect="always"
id="linearGradient4523-5">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop4525-8" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop4527-2" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4861-0"
id="linearGradient4867-9"
x1="-277.44415"
y1="-50.038612"
x2="36.835873"
y2="319.67722"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient4861-0">
<stop
style="stop-color:#d90000;stop-opacity:1;"
offset="0"
id="stop4863-4" />
<stop
style="stop-color:#a50000;stop-opacity:0;"
offset="1"
id="stop4865-0" />
</linearGradient>
<filter
inkscape:collect="always"
id="filter4948"
color-interpolation-filters="sRGB">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="4.5318938"
id="feGaussianBlur4950" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5013"
id="linearGradient5019"
x1="7.3245215"
y1="-54.502781"
x2="135.65985"
y2="191.63652"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5920888,0,0,1.59211,-0.93895132,-193.95339)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5021"
id="linearGradient5027"
x1="65.545662"
y1="-43.027843"
x2="294.41019"
y2="289.31235"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5920888,0,0,1.59211,-0.93895132,-193.95339)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5013-1"
id="linearGradient5019-5"
x1="26.703053"
y1="29.001957"
x2="170.00505"
y2="221.94109"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient5013-1">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5015-6" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop5017-1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5285"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient6116">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop6118" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop6120" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5287"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5170">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5172" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5174" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5289"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5177">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5179" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5181" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5291"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5184">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5186" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5188" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5293"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5191">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5193" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5195" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5295"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5198">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5200" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5202" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5205">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5207" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5209" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5299"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5212">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5214" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5216" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5301"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5219">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5221" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5223" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5303"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5226">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5228" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5230" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5305"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5233">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5235" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5237" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6116"
id="linearGradient5307"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.30012437,0,0,0.30012437,-202.06109,894.75914)"
x1="432.34528"
y1="197.17313"
x2="432.34528"
y2="544.38947" />
<linearGradient
id="linearGradient5240">
<stop
style="stop-color:#a00000;stop-opacity:1;"
offset="0"
id="stop5242" />
<stop
style="stop-color:#00ff00;stop-opacity:1;"
offset="1"
id="stop5244" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient6483"
id="linearGradient6489"
x1="-156.01903"
y1="74.887634"
x2="37.546711"
y2="312.74481"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5920888,0,0,1.59211,183.17146,-157.30856)" />
<filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter3998">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="4.0022328"
id="feGaussianBlur4000" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.3416928"
inkscape:cx="342.78023"
inkscape:cy="263.52795"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1032"
inkscape:window-x="-2"
inkscape:window-y="25"
inkscape:window-maximized="1"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-global="false">
<sodipodi:guide
orientation="1,0"
position="46.428571,183.92857"
id="guide6942" />
<sodipodi:guide
orientation="0,1"
position="96.843761,183.49949"
id="guide6944" />
<inkscape:grid
type="xygrid"
id="grid6946"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
<sodipodi:guide
orientation="1,0"
position="42.385351,259.70081"
id="guide7007" />
<sodipodi:guide
orientation="1,0"
position="20.357143,157.14286"
id="guide7009" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Box"
inkscape:groupmode="layer"
id="layer1"
transform="translate(310.95069,254.88855)"
style="display:inline">
<rect
style="opacity:0.98999999;fill:#ffffff;fill-opacity:0.44769874;stroke:#000000;stroke-width:0.4779852;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:0.73127753;stroke-dasharray:1.91194092, 1.91194092;stroke-dashoffset:0;filter:url(#filter5252)"
id="rect5223"
width="247.45247"
height="16.023874"
x="169.8452"
y="186.4931"
rx="12.85704"
ry="12.03072"
transform="matrix(1.3918993,0,0,0.5671588,-459.41639,-330.03016)" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#363434;stroke-width:1.03784263;stroke-miterlimit:4;stroke-opacity:0.72246692;stroke-dasharray:none;display:inline;filter:url(#filter4948);enable-background:new"
id="rect3597-9"
width="312.62057"
height="303.76965"
x="-307.06512"
y="-56.173706"
rx="84.17984"
ry="78.412369"
transform="matrix(1.5920545,0,0,1.6189277,183.16629,-155.1575)" />
<rect
style="fill:url(#linearGradient6489);fill-opacity:1;stroke:#000000;stroke-width:1.66618872;stroke-miterlimit:4;stroke-opacity:0.44052866;stroke-dasharray:none;display:inline;enable-background:new"
id="rect3597"
width="497.70898"
height="491.78116"
x="-308.39767"
y="-252.12758"
rx="134.01889"
ry="126.94395" />
<text
xml:space="preserve"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
x="-161.42857"
y="44.714287"
id="text3313"
sodipodi:linespacing="100%"
transform="translate(-310.95069,-61.88855)"><tspan
sodipodi:role="line"
id="tspan3315"
x="-161.42857"
y="44.714287" /></text>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Graphic"
style="display:inline"
transform="translate(0,193)" />
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Shadow"
style="opacity:0.96153846;display:inline"
transform="translate(0,193)">
<g
transform="matrix(1.5920888,0,0,1.59211,5.8842913,-195.09415)"
style="display:inline"
id="g4707">
<path
inkscape:connector-curvature="0"
id="path4133-5"
d="M 100.40305,75.141103 C 94.747792,60.562595 86.906602,50.296813 76.879444,44.343729 l 0,26.606016 c 7.08077,4.981149 12.545844,12.452694 16.395236,22.414657 2.993834,7.653878 4.490786,15.611378 4.490874,23.872518 -8.8e-5,8.62576 -1.49704,16.70475 -4.490874,24.23699 -2.946464,7.41085 -6.938344,13.54602 -11.975646,18.40553 L 43.30485,44.343729 C 34.085477,49.81086 26.624464,59.165476 20.921787,72.407609 15.219093,85.528488 12.36775,100.47158 12.36775,117.23692 c 0,15.42912 2.471164,29.46104 7.413499,42.09582 5.702678,14.57866 13.543871,24.84443 23.523601,30.79738 l 0,-26.60603 C 36.223985,158.5431 30.758911,151.1323 26.909613,141.29168 c -2.993924,-7.65373 -4.490879,-15.67198 -4.490869,-24.05476 -10e-6,-8.26114 1.473183,-16.1579 4.419585,-23.690285 2.993896,-7.653681 7.009537,-13.910341 12.046936,-18.769998 L 76.879444,190.13012 c 10.027158,-5.95295 17.868348,-16.21872 23.523606,-30.79738 4.94224,-12.63478 7.4134,-26.6667 7.4135,-42.09582 -1e-4,-15.42897 -2.47126,-29.460893 -7.4135,-42.095817"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4680"
d="m 157.375,44.34375 c -12.54595,1.47e-4 -23.1322,7.032454 -31.78125,21.125 C 116.94466,79.561544 112.625,96.840003 112.625,117.25 c 0,14.45721 2.31155,27.62541 6.96875,39.53125 4.08692,10.44804 9.47185,18.64082 16.125,24.59375 6.70064,5.83145 13.91006,8.75 21.65625,8.75 7.79362,0 15.00306,-2.91855 21.65625,-8.75 6.7006,-5.95293 12.1005,-14.14571 16.1875,-24.59375 4.65712,-11.90584 6.99991,-25.07404 7,-39.53125 -9e-5,-14.45706 -2.34288,-27.656512 -7,-39.5625 -4.087,-10.447902 -9.4869,-18.574664 -16.1875,-24.40625 -6.65319,-5.952801 -13.86263,-8.937353 -21.65625,-8.9375 z m 0,24.0625 c 6.463,1.22e-4 12.47107,2.355812 18.03125,7.09375 5.56006,4.738169 9.94093,11.172864 13.125,19.3125 2.80375,7.16791 4.18743,14.66231 4.1875,22.4375 -7e-5,13.24233 -3.48303,24.71845 -10.46875,34.4375 -6.98586,9.59763 -15.27553,14.37501 -24.875,14.375 -6.41557,1e-5 -12.42364,-2.35567 -18.03125,-7.09375 -5.56015,-4.73803 -9.92604,-11.17272 -13.0625,-19.3125 -2.85136,-7.16777 -4.25002,-14.63091 -4.25,-22.40625 -2e-5,-7.77519 1.39864,-15.26959 4.25,-22.4375 3.13646,-8.139636 7.50235,-14.574331 13.0625,-19.3125 5.60761,-4.737938 11.61568,-7.093628 18.03125,-7.09375 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4137-5"
d="M 294.76235,75.141103 C 289.1071,60.562595 281.26591,50.296813 271.23875,44.343729 l 0,26.606016 c 7.08077,4.981149 12.54585,12.452694 16.39524,22.414657 2.99383,7.653878 4.49078,15.611378 4.49087,23.872518 -9e-5,8.62576 -1.49704,16.70475 -4.49087,24.23699 -2.94647,7.41085 -6.93835,13.54602 -11.97566,18.40553 L 237.66415,44.343729 c -9.21936,5.467131 -16.68038,14.821747 -22.38306,28.06388 -5.70269,13.120879 -8.55404,28.063971 -8.55404,44.829311 0,15.42912 2.47117,29.46104 7.4135,42.09582 5.70268,14.57866 13.54387,24.84443 23.5236,30.79738 l 0,-26.60603 c -7.08086,-4.98099 -12.54594,-12.39179 -16.39523,-22.23241 -2.99393,-7.65373 -4.49088,-15.67198 -4.49087,-24.05476 -1e-5,-8.26114 1.47318,-16.1579 4.41958,-23.690285 2.9939,-7.653681 7.00954,-13.910341 12.04694,-18.769998 l 37.99418,115.353483 c 10.02716,-5.95295 17.86835,-16.21872 23.5236,-30.79738 4.94224,-12.63478 7.4134,-26.6667 7.4135,-42.09582 -1e-4,-15.42897 -2.47126,-29.460893 -7.4135,-42.095817"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;display:inline;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4140-7"
d="m 38.496485,265.43345 -18.274424,0 c -2.963423,0 -4.445132,-2.27906 -4.44513,-6.83716 l 0,-6.21559 c -2e-6,-1.49172 0.301827,-2.65196 0.90549,-3.48073 0.603656,-0.82873 1.317071,-1.2431 2.140247,-1.24311 0.823167,1e-5 1.509143,0.41438 2.057931,1.24311 0.603652,0.74589 0.905482,1.90613 0.905489,3.48073 -7e-6,2.07188 0.164627,3.35643 0.493904,3.85367 0.32926,0.49725 1.152431,0.74588 2.469516,0.74587 l 3.210372,0 c 1.31706,1e-5 2.140232,-0.24862 2.469517,-0.74587 0.38413,-0.58011 0.576203,-1.86467 0.576221,-3.85367 l 0,-4.35091 c -1.8e-5,-2.32047 -0.274408,-3.64647 -0.823173,-3.97799 -0.548797,-0.41434 -1.289651,-0.62153 -2.222565,-0.62155 l -7.820136,0 c -2.908545,2e-5 -4.362815,-2.23759 -4.362813,-6.71284 l 0,-16.28485 c -2e-6,-2.23756 0.411584,-3.93649 1.234759,-5.09679 0.823168,-1.16019 1.92073,-1.74031 3.292689,-1.74036 l 18.192106,0 c 1.317049,5e-5 2.387173,0.62161 3.210372,1.86468 0.878021,1.16029 1.317046,2.81779 1.317075,4.97247 l 0,6.58853 c -2.9e-5,1.57466 -0.301858,2.77634 -0.905489,3.60504 -0.54881,0.74591 -1.262225,1.11884 -2.140248,1.11881 -0.823197,3e-5 -1.536612,-0.41434 -2.140248,-1.24312 -0.603682,-0.82871 -0.905512,-1.98895 -0.905489,-3.48073 -2.3e-5,-2.32045 -0.164658,-3.72932 -0.493904,-4.2266 -0.32929,-0.49721 -1.152462,-0.74584 -2.469517,-0.74587 l -9.219529,0 c -1.262206,3e-5 -2.085378,0.2901 -2.469516,0.87017 -0.329277,0.4973 -0.493911,1.74041 -0.493904,3.72937 l 0,3.72935 c -7e-6,2.07189 0.164627,3.35645 0.493904,3.85367 0.32926,0.49727 1.152431,0.7459 2.469516,0.74587 l 13.746977,0 c 3.018271,3e-5 4.527418,2.27907 4.527447,6.83715 l 0,16.78209 c -2.9e-5,4.5581 -1.509176,6.83716 -4.527447,6.83716"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4672"
d="m 50.78125,213.59375 c -2.963423,5e-5 -4.468752,2.28571 -4.46875,6.84375 l 0,38.15625 c -2e-6,4.5581 1.505327,6.84375 4.46875,6.84375 l 22.28125,0 c 2.963388,0 4.468717,-2.28565 4.46875,-6.84375 l 0,-5.59375 c -3.3e-5,-1.49172 -0.302623,-2.59785 -0.90625,-3.34375 -0.548812,-0.82872 -1.239359,-1.24998 -2.0625,-1.25 -0.823202,2e-5 -1.552619,0.42128 -2.15625,1.25 -0.548809,0.7459 -0.812527,1.80991 -0.8125,3.21875 l 0,0.875 c -2.7e-5,2.15474 -0.605208,3.21876 -1.8125,3.21875 l -8.625,0 c -1.207335,10e-6 -1.812515,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -1.5e-5,-2.07184 0.605165,-3.12497 1.8125,-3.125 l 11.90625,0 c 2.963388,3e-5 4.468717,-2.28562 4.46875,-6.84375 l 0,-13.65625 c -3.3e-5,-4.55804 -1.505362,-6.8437 -4.46875,-6.84375 l -22.28125,0 z m 11.59375,8.46875 5.9375,0 c 0.878026,3e-5 1.576194,0.47431 2.125,1.46875 0.603634,0.91166 0.906223,2.00693 0.90625,3.25 -2.7e-5,1.32603 -0.302616,2.43216 -0.90625,3.34375 -0.603685,0.91165 -1.301852,1.37504 -2.125,1.375 l -5.9375,0 c -0.932945,4e-5 -1.669985,-0.46335 -2.21875,-1.375 -0.548797,-0.91159 -0.812515,-2.01772 -0.8125,-3.34375 -1.5e-5,-1.24307 0.263703,-2.33834 0.8125,-3.25 0.603643,-0.99444 1.340683,-1.46872 2.21875,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4144-4"
d="m 85.65625,213.59375 c -2.963422,5e-5 -4.437501,2.28571 -4.4375,6.84375 l 0,38.15625 c -10e-7,4.5581 1.474078,6.84375 4.4375,6.84375 l 16.875,0 c 1.2073,0 1.9832,0.25275 2.3125,0.75 0.32924,0.49725 0.49997,1.77189 0.5,3.84375 l 0,22.625 c -3e-5,4.47519 1.47406,6.71872 4.4375,6.71875 l 3.03125,0 c 3.01826,-3e-5 4.5312,-2.24356 4.53125,-6.71875 l 0,-24.125 c -5e-5,-2.07187 -0.17077,-3.47288 -0.5,-4.21875 -3.3476,-5.30396 -5.0854,-8.23236 -5.25,-8.8125 -0.16465,-0.66298 -0.25004,-2.82225 -0.25,-6.46875 l 0,-28.59375 c -4e-5,-2.15468 -0.43448,-3.80846 -1.3125,-4.96875 -0.8232,-1.24307 -1.94058,-1.87495 -3.3125,-1.875 l -21.0625,0 z m 4.53125,8.46875 12.09375,0 c 1.59144,3e-5 2.49922,0.34793 2.71875,1.09375 0.21949,0.74591 0.34372,1.92541 0.34375,3.5 l 0,25.71875 c -3e-5,1.989 -0.20963,3.26364 -0.59375,3.84375 -0.32929,0.49725 -1.1517,0.75001 -2.46875,0.75 l -12.09375,0 c -1.317084,10e-6 -2.139491,-0.25275 -2.46875,-0.75 -0.329275,-0.49724 -0.5,-1.77187 -0.5,-3.84375 l 0,-25.71875 c 0,-1.98896 0.170725,-3.2527 0.5,-3.75 0.384138,-0.58007 1.206545,-0.84372 2.46875,-0.84375 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4146-3"
d="m 131.97798,252.3807 c -1e-5,2.07188 0.16462,3.35643 0.49391,3.85367 0.32925,0.49725 1.15242,0.74588 2.46951,0.74587 l 3.21037,0 c 1.31706,1e-5 2.14023,-0.24862 2.46952,-0.74587 0.38413,-0.58011 0.5762,-1.86467 0.57622,-3.85367 l 0,-33.56419 c -2e-5,-1.65745 0.3018,-2.94199 0.90549,-3.85367 0.60363,-0.91156 1.31705,-1.36738 2.14025,-1.36743 0.82315,5e-5 1.50912,0.45587 2.05793,1.36743 0.60363,0.8288 0.90546,2.03048 0.90549,3.60504 l 0,40.02841 c -3e-5,4.5581 -1.50918,6.83716 -4.52745,6.83716 l -18.1921,0 c -3.01831,0 -4.52746,-2.27906 -4.52746,-6.83716 l 0,-40.02841 c 0,-1.57456 0.27439,-2.77624 0.82318,-3.60504 0.60366,-0.91156 1.34451,-1.36738 2.22256,-1.36743 0.87805,5e-5 1.59147,0.41443 2.14025,1.24312 0.54878,0.74592 0.82317,1.9476 0.82317,3.60504 l 0,8.57752 c 0,2.0719 0.21951,3.5222 0.65855,4.35091 l 2.14024,3.23211 c 1.53657,2.32052 2.44206,3.85369 2.71647,4.59954 0.32926,0.7459 0.49389,2.07189 0.4939,3.97798 l 0,9.19907"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4662"
d="m 155.59375,213.59375 c -2.96343,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47407,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43746,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -4e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82872 -1.23936,-1.24998 -2.0625,-1.25 -0.8232,2e-5 -1.52137,0.42128 -2.125,1.25 -0.54881,0.7459 -0.84378,1.80991 -0.84375,3.21875 l 0,0.875 c -3e-5,2.15474 -0.57395,3.21876 -1.78125,3.21875 l -8.65625,0 c -1.20733,10e-6 -1.81251,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -1e-5,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43746,-2.28562 4.4375,-6.84375 l 0,-13.65625 c -4e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.59375,8.46875 5.9375,0 c 0.87803,3e-5 1.60744,0.47431 2.15625,1.46875 0.60363,0.91166 0.90622,2.00693 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37504 -2.15625,1.375 l -5.9375,0 c -0.93295,4e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -1e-5,-1.24307 0.26371,-2.33834 0.8125,-3.25 0.60365,-0.99444 1.34068,-1.46872 2.21875,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4150-7"
d="m 193.5294,265.43345 -3.04573,0 c -2.96343,0 -4.44514,-2.27906 -4.44514,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93649 1.23476,-5.09679 0.82317,-1.16019 1.92073,-1.74031 3.29269,-1.74036 l 18.76833,0 c 2.96339,5e-5 4.4451,2.27911 4.44513,6.83715 l 0,40.0284 c -3e-5,1.57463 -0.30186,2.81774 -0.90549,3.72937 -0.54881,0.82874 -1.23479,1.24312 -2.05793,1.24312 -2.03052,0 -3.04576,-1.74037 -3.04573,-5.2211 l 0,-33.56419 c -3e-5,-2.07183 -0.16467,-3.35639 -0.49391,-3.85367 -0.32929,-0.49721 -1.15246,-0.74584 -2.46951,-0.74587 l -9.79576,0 c -1.2622,3e-5 -2.08537,0.2901 -2.46951,0.87017 -0.32928,0.4973 -0.49391,1.74041 -0.49391,3.72937 0,1.98901 0.0823,3.23213 0.24695,3.72935 0.16463,0.49728 1.01524,1.94758 2.55184,4.35091 1.59145,2.32052 2.52438,3.81226 2.79879,4.47523 0.27437,0.58014 0.41157,1.74039 0.41158,3.48072 l 0,15.91192 c -1e-5,4.5581 -1.50916,6.83716 -4.52745,6.83716"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4152-8"
d="m 244.47605,226.64816 c -3e-5,1.24315 -0.30185,2.32052 -0.90549,3.23211 -0.54881,0.82877 -1.17991,1.24314 -1.8933,1.24311 l -6.58537,0 c -0.65856,3e-5 -1.28966,-0.41434 -1.8933,-1.24311 -0.5488,-0.91159 -0.82319,-1.98896 -0.82317,-3.23211 l 0,-1.36743 c -2e-5,-2.1547 -0.60367,-3.23208 -1.81098,-3.23211 l -5.51526,0 c -1.20732,3e-5 -1.81098,1.07741 -1.81097,3.23211 l 0,28.4674 c -1e-5,2.15474 0.60365,3.23212 1.81097,3.23211 l 9.30185,0 c 1.97559,1e-5 3.12803,-0.16574 3.45732,-0.49725 0.38413,-0.41436 0.5762,-1.61604 0.57623,-3.60505 -3e-5,-1.40884 0.27436,-2.48621 0.82317,-3.23211 0.60363,-0.82872 1.34449,-1.24309 2.22257,-1.24311 0.82314,2e-5 1.53656,0.41439 2.14024,1.24311 0.60364,0.82877 0.90546,1.98901 0.90549,3.48074 l 0,5.46972 c -3e-5,4.5581 -1.50917,6.83716 -4.52745,6.83716 l -18.27442,0 c -2.96343,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-4.55804 1.4817,-6.8371 4.44513,-6.83715 l 18.27442,0 c 1.31705,5e-5 2.38717,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,6.2156"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4654"
d="m 252.375,213.59375 c -2.96342,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47408,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43747,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -3e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82872 -1.20811,-1.24998 -2.03125,-1.25 -0.8232,2e-5 -1.55262,0.42128 -2.15625,1.25 -0.54881,0.7459 -0.81252,1.80991 -0.8125,3.21875 l 0,0.875 c -2e-5,2.15474 -0.60521,3.21876 -1.8125,3.21875 l -8.65625,0 c -1.20733,10e-6 -1.81251,-1.06401 -1.8125,-3.21875 l 0,-9.6875 c -10e-6,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43747,-2.28562 4.4375,-6.84375 l 0,-13.65625 c -3e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.625,8.46875 5.90625,0 c 0.87803,3e-5 1.60744,0.47431 2.15625,1.46875 0.60363,0.91166 0.90622,2.00693 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37504 -2.15625,1.375 L 264,231.5 c -0.93294,4e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.84376,-2.01772 -0.84375,-3.34375 -10e-6,-1.24307 0.29496,-2.33834 0.84375,-3.25 0.60365,-0.99444 1.34068,-1.46872 2.21875,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
<path
inkscape:connector-curvature="0"
id="path4156-8"
d="m 294.8439,258.59629 c -1e-5,4.5581 -1.50916,6.83716 -4.52744,6.83716 l -3.04574,0 c -2.96342,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93649 1.23476,-5.09679 0.82317,-1.16019 1.92073,-1.74031 3.29269,-1.74036 l 14.32319,0 c 1.31706,5e-5 2.38718,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,5.96697 c -3e-5,1.40891 -0.30185,2.56915 -0.90548,3.48074 -0.54881,0.82877 -1.23479,1.24314 -2.05794,1.24311 -2.03051,3e-5 -3.04576,-1.57458 -3.04573,-4.72385 -3e-5,-2.07182 -0.16466,-3.31494 -0.49391,-3.72935 -0.32929,-0.41434 -1.17989,-0.62153 -2.55183,-0.62156 l -5.35062,0 c -1.26221,3e-5 -2.08538,0.2901 -2.46952,0.87017 -0.32928,0.4973 -0.49391,1.74041 -0.4939,3.72937 -10e-6,2.07189 0.0823,3.35644 0.24695,3.85366 0.10975,0.33153 0.96036,1.69897 2.55183,4.10229 1.59146,2.40339 2.52438,3.93657 2.79879,4.59954 0.27438,0.58014 0.41157,1.74039 0.41158,3.48072 l 0,15.91192"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.62810147;stroke-opacity:1;filter:url(#filter3998)" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="Text"
style="display:inline"
transform="translate(0,193)">
<g
transform="matrix(1.5920888,0,0,1.59211,1.6954939,-192.96898)"
style="stroke:#a7a7a7;stroke-width:0.62810147;stroke-opacity:0.75770928;display:inline"
id="g4693">
<path
inkscape:connector-curvature="0"
id="path4608"
d="m 156.4375,39.4375 c -12.54595,1.47e-4 -23.1322,7.063704 -31.78125,21.15625 -8.64909,14.092794 -13,31.339997 -13,51.75 0,14.45721 2.3428,27.62541 7,39.53125 4.08692,10.44804 9.47185,18.64082 16.125,24.59375 6.70064,5.83145 13.91006,8.75 21.65625,8.75 7.79362,0 15.00306,-2.91855 21.65625,-8.75 6.7006,-5.95293 12.1005,-14.14571 16.1875,-24.59375 4.65712,-11.90584 6.99991,-25.07404 7,-39.53125 -9e-5,-14.457065 -2.34288,-27.656512 -7,-39.5625 -4.087,-10.447902 -9.4869,-18.574664 -16.1875,-24.40625 -6.65319,-5.952801 -13.86263,-8.937353 -21.65625,-8.9375 z m 0,24.0625 c 6.463,1.22e-4 12.47107,2.355812 18.03125,7.09375 5.56006,4.738169 9.94093,11.172864 13.125,19.3125 2.80375,7.167918 4.18743,14.6623 4.1875,22.4375 -7e-5,13.24232 -3.48303,24.71846 -10.46875,34.4375 -6.98586,9.59763 -15.27553,14.40627 -24.875,14.40625 -6.41557,2e-5 -12.42364,-2.38691 -18.03125,-7.125 -5.56015,-4.73802 -9.92604,-11.17271 -13.0625,-19.3125 -2.85136,-7.16777 -4.25002,-14.63091 -4.25,-22.40625 -2e-5,-7.7752 1.39864,-15.269582 4.25,-22.4375 3.13646,-8.139636 7.50235,-14.574331 13.0625,-19.3125 5.60761,-4.737938 11.61568,-7.093628 18.03125,-7.09375 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4133"
d="M 99.462616,70.239967 C 93.807362,55.661459 85.966172,45.395677 75.939014,39.442593 l 0,26.606016 c 7.08077,4.981149 12.545844,12.452694 16.395236,22.414657 2.993834,7.653874 4.490786,15.611374 4.490874,23.872524 -8.8e-5,8.62576 -1.49704,16.70474 -4.490874,24.23698 -2.946464,7.41085 -6.938344,13.54602 -11.975646,18.40553 L 42.36442,39.442593 c -9.219373,5.467131 -16.680386,14.821747 -22.383063,28.06388 -5.702694,13.120879 -8.554037,28.06397 -8.554037,44.829317 0,15.42911 2.471164,29.46104 7.413499,42.09582 5.702678,14.57865 13.543871,24.84442 23.523601,30.79737 l 0,-26.60602 c -7.080865,-4.981 -12.545939,-12.3918 -16.395237,-22.23242 -2.993924,-7.65373 -4.490879,-15.67197 -4.490869,-24.05475 -10e-6,-8.26115 1.473183,-16.157906 4.419585,-23.690291 2.993896,-7.653681 7.009537,-13.910341 12.046936,-18.769998 L 75.939014,185.22898 c 10.027158,-5.95295 17.868348,-16.21872 23.523602,-30.79737 4.942244,-12.63478 7.413404,-26.66671 7.413504,-42.09582 -1e-4,-15.428973 -2.47126,-29.460899 -7.413504,-42.095823"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4137"
d="m 293.82192,70.239967 c -5.65525,-14.578508 -13.49644,-24.84429 -23.5236,-30.797374 l 0,26.606016 c 7.08077,4.981149 12.54585,12.452694 16.39524,22.414657 2.99383,7.653874 4.49078,15.611374 4.49087,23.872524 -9e-5,8.62576 -1.49704,16.70474 -4.49087,24.23698 -2.94647,7.41085 -6.93835,13.54602 -11.97566,18.40553 L 236.72372,39.442593 c -9.21936,5.467131 -16.68038,14.821747 -22.38306,28.06388 -5.70269,13.120879 -8.55404,28.06397 -8.55404,44.829317 0,15.42911 2.47117,29.46104 7.4135,42.09582 5.70268,14.57865 13.54387,24.84442 23.5236,30.79737 l 0,-26.60602 c -7.08086,-4.981 -12.54594,-12.3918 -16.39523,-22.23242 -2.99393,-7.65373 -4.49088,-15.67197 -4.49087,-24.05475 -10e-6,-8.26115 1.47318,-16.157906 4.41958,-23.690291 2.9939,-7.653681 7.00954,-13.910341 12.04694,-18.769998 l 37.99418,115.353479 c 10.02716,-5.95295 17.86835,-16.21872 23.5236,-30.79737 4.94224,-12.63478 7.4134,-26.66671 7.4135,-42.09582 -10e-5,-15.428973 -2.47126,-29.460899 -7.4135,-42.095823"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4140"
d="m 37.556055,260.53231 -18.274424,0 c -2.963423,0 -4.445132,-2.27906 -4.44513,-6.83716 l 0,-6.21559 c -2e-6,-1.49172 0.301827,-2.65196 0.90549,-3.48072 0.603656,-0.82874 1.317071,-1.24311 2.140247,-1.24312 0.823167,1e-5 1.509143,0.41438 2.057931,1.24312 0.603652,0.74588 0.905482,1.90612 0.905489,3.48072 -7e-6,2.07188 0.164627,3.35644 0.493904,3.85367 0.32926,0.49726 1.152431,0.74589 2.469516,0.74587 l 3.210372,0 c 1.31706,2e-5 2.140232,-0.24861 2.469517,-0.74587 0.38413,-0.58011 0.576203,-1.86466 0.576221,-3.85367 l 0,-4.35091 c -1.8e-5,-2.32047 -0.274408,-3.64646 -0.823173,-3.97798 -0.548797,-0.41434 -1.289651,-0.62154 -2.222565,-0.62156 l -7.820136,0 c -2.908545,2e-5 -4.362815,-2.23758 -4.362813,-6.71283 l 0,-16.28486 c -2e-6,-2.23756 0.411584,-3.93648 1.234759,-5.09678 0.823168,-1.1602 1.92073,-1.74032 3.292689,-1.74037 l 18.192106,0 c 1.317049,5e-5 2.387173,0.62161 3.210372,1.86468 0.878021,1.16029 1.317046,2.81779 1.317075,4.97247 l 0,6.58853 c -2.9e-5,1.57466 -0.301858,2.77634 -0.905489,3.60504 -0.54881,0.74591 -1.262225,1.11884 -2.140248,1.11882 -0.823197,2e-5 -1.536612,-0.41435 -2.140248,-1.24312 -0.603682,-0.82871 -0.905512,-1.98895 -0.905489,-3.48074 -2.3e-5,-2.32044 -0.164658,-3.72931 -0.493904,-4.2266 -0.32929,-0.4972 -1.152462,-0.74583 -2.469517,-0.74587 l -9.219529,0 c -1.262206,4e-5 -2.085378,0.2901 -2.469516,0.87018 -0.329277,0.49729 -0.493911,1.74041 -0.493904,3.72936 l 0,3.72935 c -7e-6,2.0719 0.164627,3.35645 0.493904,3.85367 0.32926,0.49727 1.152431,0.7459 2.469516,0.74587 l 13.746977,0 c 3.018271,3e-5 4.527418,2.27907 4.527447,6.83715 l 0,16.78209 c -2.9e-5,4.5581 -1.509176,6.83716 -4.527447,6.83716"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4598"
d="m 49.84375,208.6875 c -2.963423,5e-5 -4.468752,2.28571 -4.46875,6.84375 l 0,38.15625 c -2e-6,4.5581 1.505327,6.84375 4.46875,6.84375 l 22.28125,0 c 2.963388,0 4.468717,-2.28565 4.46875,-6.84375 l 0,-5.59375 c -3.3e-5,-1.49172 -0.302623,-2.59785 -0.90625,-3.34375 -0.548812,-0.82873 -1.239359,-1.24997 -2.0625,-1.25 -0.823202,3e-5 -1.552619,0.42127 -2.15625,1.25 -0.548809,0.7459 -0.812527,1.8099 -0.8125,3.21875 l 0,0.875 c -2.7e-5,2.15475 -0.605208,3.25002 -1.8125,3.25 l -8.65625,0 c -1.207335,2e-5 -1.812515,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -1.5e-5,-2.07184 0.605165,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.963388,3e-5 4.468717,-2.25438 4.46875,-6.8125 l 0,-13.6875 c -3.3e-5,-4.55804 -1.505362,-6.8437 -4.46875,-6.84375 l -22.28125,0 z m 11.59375,8.46875 5.9375,0 c 0.878026,4e-5 1.576194,0.47432 2.125,1.46875 0.603634,0.91167 0.906223,2.00694 0.90625,3.25 -2.7e-5,1.32603 -0.302616,2.43216 -0.90625,3.34375 -0.603685,0.91165 -1.301852,1.37503 -2.125,1.375 l -5.9375,0 c -0.932945,3e-5 -1.669985,-0.46335 -2.21875,-1.375 -0.548797,-0.91159 -0.843765,-2.01772 -0.84375,-3.34375 -1.5e-5,-1.24306 0.294953,-2.33833 0.84375,-3.25 0.603643,-0.99443 1.340683,-1.46871 2.21875,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4144"
d="m 84.71875,208.6875 c -2.963422,5e-5 -4.437501,2.28571 -4.4375,6.84375 l 0,38.15625 c -10e-7,4.5581 1.474078,6.84375 4.4375,6.84375 l 16.875,0 c 1.2073,0 1.9832,0.25276 2.3125,0.75 0.32924,0.49726 0.49997,1.77188 0.5,3.84375 l 0,22.625 c -3e-5,4.47519 1.47406,6.71873 4.4375,6.71875 l 3.03125,0 c 3.01826,-2e-5 4.5312,-2.24356 4.53125,-6.71875 l 0,-24.125 c -5e-5,-2.07186 -0.17077,-3.47287 -0.5,-4.21875 -3.3476,-5.30396 -5.0854,-8.23237 -5.25,-8.8125 -0.16465,-0.66299 -0.25004,-2.82225 -0.25,-6.46875 l 0,-28.59375 c -4e-5,-2.15468 -0.43448,-3.80846 -1.3125,-4.96875 -0.8232,-1.24307 -1.94058,-1.87495 -3.3125,-1.875 l -21.0625,0 z m 4.53125,8.46875 12.09375,0 c 1.59144,4e-5 2.49922,0.37918 2.71875,1.125 0.21949,0.74591 0.34372,1.89417 0.34375,3.46875 l 0,25.71875 c -3e-5,1.98901 -0.20963,3.29489 -0.59375,3.875 -0.32929,0.49726 -1.1517,0.75002 -2.46875,0.75 l -12.09375,0 c -1.317084,2e-5 -2.139491,-0.25274 -2.46875,-0.75 -0.329275,-0.49723 -0.5,-1.80312 -0.5,-3.875 l 0,-25.71875 c 0,-1.98895 0.170725,-3.22146 0.5,-3.71875 0.384138,-0.58008 1.206545,-0.87496 2.46875,-0.875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4146"
d="m 131.03755,247.47956 c -1e-5,2.07188 0.16462,3.35644 0.49391,3.85367 0.32925,0.49726 1.15242,0.74589 2.46951,0.74587 l 3.21037,0 c 1.31706,2e-5 2.14023,-0.24861 2.46952,-0.74587 0.38413,-0.58011 0.5762,-1.86466 0.57622,-3.85367 l 0,-33.56419 c -2e-5,-1.65745 0.3018,-2.94199 0.90549,-3.85366 0.60363,-0.91157 1.31705,-1.36739 2.14025,-1.36744 0.82315,5e-5 1.50912,0.45587 2.05793,1.36744 0.60363,0.82879 0.90546,2.03047 0.90549,3.60503 l 0,40.02841 c -3e-5,4.5581 -1.50918,6.83716 -4.52745,6.83716 l -18.1921,0 c -3.01831,0 -4.52746,-2.27906 -4.52746,-6.83716 l 0,-40.02841 c 0,-1.57456 0.27439,-2.77624 0.82318,-3.60503 0.60366,-0.91157 1.34451,-1.36739 2.22256,-1.36744 0.87805,5e-5 1.59147,0.41443 2.14025,1.24312 0.54878,0.74592 0.82317,1.9476 0.82317,3.60504 l 0,8.57752 c 0,2.07191 0.21951,3.5222 0.65855,4.35091 l 2.14024,3.23211 c 1.53657,2.32052 2.44206,3.85369 2.71647,4.59954 0.32926,0.7459 0.49389,2.07189 0.4939,3.97798 l 0,9.19907"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4588"
d="m 154.65625,208.6875 c -2.96343,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47407,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43746,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -4e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82873 -1.23936,-1.24997 -2.0625,-1.25 -0.8232,3e-5 -1.52137,0.42127 -2.125,1.25 -0.54881,0.7459 -0.84378,1.8099 -0.84375,3.21875 l 0,0.875 c -3e-5,2.15475 -0.6052,3.25002 -1.8125,3.25 l -8.625,0 c -1.20733,2e-5 -1.81251,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -1e-5,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43746,-2.25438 4.4375,-6.8125 l 0,-13.6875 c -4e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.59375,8.46875 5.9375,0 c 0.87803,4e-5 1.60744,0.47432 2.15625,1.46875 0.60363,0.91167 0.87497,2.00694 0.875,3.25 -3e-5,1.32603 -0.27137,2.43216 -0.875,3.34375 -0.60369,0.91165 -1.3331,1.37503 -2.15625,1.375 l -5.9375,0 c -0.93295,3e-5 -1.66998,-0.46335 -2.21875,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -1e-5,-1.24306 0.26371,-2.33833 0.8125,-3.25 0.60365,-0.99443 1.34068,-1.46871 2.21875,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4150"
d="m 192.58897,260.53231 -3.04573,0 c -2.96343,0 -4.44514,-2.27906 -4.44514,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93648 1.23476,-5.09678 0.82317,-1.1602 1.92073,-1.74032 3.29269,-1.74037 l 18.76833,0 c 2.96339,5e-5 4.4451,2.27911 4.44513,6.83715 l 0,40.02841 c -3e-5,1.57462 -0.30186,2.81774 -0.90549,3.72936 -0.54881,0.82874 -1.23479,1.24312 -2.05793,1.24312 -2.03052,0 -3.04576,-1.74036 -3.04573,-5.2211 l 0,-33.56419 c -3e-5,-2.07183 -0.16467,-3.35638 -0.49391,-3.85367 -0.32929,-0.4972 -1.15246,-0.74583 -2.46951,-0.74587 l -9.79576,0 c -1.2622,4e-5 -2.08537,0.2901 -2.46951,0.87018 -0.32928,0.49729 -0.49391,1.74041 -0.49391,3.72936 0,1.98902 0.0823,3.23213 0.24695,3.72935 0.16463,0.49729 1.01524,1.94758 2.55184,4.35092 1.59145,2.32052 2.52438,3.81225 2.79879,4.47522 0.27437,0.58015 0.41157,1.74039 0.41158,3.48073 l 0,15.91191 c -1e-5,4.5581 -1.50916,6.83716 -4.52745,6.83716"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4152"
d="m 243.53562,221.74702 c -3e-5,1.24316 -0.30185,2.32052 -0.90549,3.23211 -0.54881,0.82877 -1.17991,1.24314 -1.8933,1.24312 l -6.58537,0 c -0.65856,2e-5 -1.28966,-0.41435 -1.8933,-1.24312 -0.5488,-0.91159 -0.82319,-1.98895 -0.82317,-3.23211 l 0,-1.36743 c -2e-5,-2.15469 -0.60367,-3.23207 -1.81098,-3.23211 l -5.51526,0 c -1.20732,4e-5 -1.81098,1.07742 -1.81097,3.23211 l 0,28.4674 c -10e-6,2.15475 0.60365,3.23213 1.81097,3.23211 l 9.30185,0 c 1.97559,2e-5 3.12803,-0.16574 3.45732,-0.49724 0.38413,-0.41437 0.5762,-1.61605 0.57623,-3.60505 -3e-5,-1.40885 0.27436,-2.48621 0.82317,-3.23211 0.60363,-0.82873 1.34449,-1.24309 2.22257,-1.24312 0.82314,3e-5 1.53656,0.41439 2.14024,1.24312 0.60364,0.82876 0.90546,1.989 0.90549,3.48074 l 0,5.46971 c -3e-5,4.5581 -1.50917,6.83716 -4.52745,6.83716 l -18.27442,0 c -2.96343,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-4.55804 1.4817,-6.8371 4.44513,-6.83715 l 18.27442,0 c 1.31705,5e-5 2.38717,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,6.2156"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4580"
d="m 251.4375,208.6875 c -2.96342,5e-5 -4.4375,2.28571 -4.4375,6.84375 l 0,38.15625 c 0,4.5581 1.47408,6.84375 4.4375,6.84375 l 22.3125,0 c 2.96339,0 4.43747,-2.28565 4.4375,-6.84375 l 0,-5.59375 c -3e-5,-1.49172 -0.30262,-2.59785 -0.90625,-3.34375 -0.54881,-0.82873 -1.23936,-1.24997 -2.0625,-1.25 -0.8232,3e-5 -1.52137,0.42127 -2.125,1.25 -0.54881,0.7459 -0.81252,1.8099 -0.8125,3.21875 l 0,0.875 c -2e-5,2.15475 -0.60521,3.25002 -1.8125,3.25 l -8.65625,0 c -1.20733,2e-5 -1.81251,-1.09525 -1.8125,-3.25 l 0,-9.6875 c -10e-6,-2.07184 0.60517,-3.12497 1.8125,-3.125 l 11.9375,0 c 2.96339,3e-5 4.43747,-2.25438 4.4375,-6.8125 l 0,-13.6875 c -3e-5,-4.55804 -1.47411,-6.8437 -4.4375,-6.84375 l -22.3125,0 z m 11.625,8.46875 5.90625,0 c 0.87803,4e-5 1.60744,0.47432 2.15625,1.46875 0.60363,0.91167 0.90622,2.00694 0.90625,3.25 -3e-5,1.32603 -0.30262,2.43216 -0.90625,3.34375 -0.60369,0.91165 -1.3331,1.37503 -2.15625,1.375 l -5.90625,0 c -0.93294,3e-5 -1.70123,-0.46335 -2.25,-1.375 -0.54879,-0.91159 -0.81251,-2.01772 -0.8125,-3.34375 -10e-6,-1.24306 0.26371,-2.33833 0.8125,-3.25 0.60365,-0.99443 1.37193,-1.46871 2.25,-1.46875 z"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
<path
inkscape:connector-curvature="0"
id="path4156"
d="m 293.90347,253.69515 c -1e-5,4.5581 -1.50916,6.83716 -4.52744,6.83716 l -3.04574,0 c -2.96342,0 -4.44513,-2.27906 -4.44513,-6.83716 l 0,-38.16373 c 0,-2.23756 0.41159,-3.93648 1.23476,-5.09678 0.82317,-1.1602 1.92073,-1.74032 3.29269,-1.74037 l 14.32319,0 c 1.31706,5e-5 2.38718,0.62161 3.21038,1.86468 0.87802,1.16029 1.31704,2.81779 1.31707,4.97247 l 0,5.96697 c -3e-5,1.40891 -0.30185,2.56915 -0.90548,3.48074 -0.54881,0.82877 -1.23479,1.24314 -2.05794,1.24312 -2.03051,2e-5 -3.04576,-1.57459 -3.04573,-4.72386 -3e-5,-2.07181 -0.16466,-3.31493 -0.49391,-3.72935 -0.32929,-0.41433 -1.17989,-0.62152 -2.55183,-0.62156 l -5.35062,0 c -1.26221,4e-5 -2.08538,0.2901 -2.46952,0.87018 -0.32928,0.49729 -0.49391,1.74041 -0.4939,3.72936 -10e-6,2.07189 0.0823,3.35645 0.24695,3.85367 0.10975,0.33153 0.96036,1.69896 2.55183,4.10228 1.59146,2.4034 2.52438,3.93657 2.79879,4.59954 0.27438,0.58015 0.41157,1.74039 0.41158,3.48073 l 0,15.91191"
style="text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:#a7a7a7;stroke-width:0.63336247;stroke-opacity:0.75770928" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Gloss"
style="opacity:0.39743593;display:inline"
transform="translate(0,193)">
<path
style="fill:url(#linearGradient5019);fill-opacity:1;stroke:none;display:inline;enable-background:new"
d="m 140.75695,-181.46527 c -72.755273,0 -131.3473247,55.32504 -131.3473247,124.035321 l 0,226.726419 c 0,20.80953 5.4124137,40.37745 14.9258327,57.56472 C 7.7443533,-168.40399 355.28423,-168.5508 427.33293,-164.35009 c -19.53259,-10.874 -42.31047,-17.11518 -66.71847,-17.11518 l -219.85751,0 z"
id="path4983"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient5027);fill-opacity:1;stroke:none;display:inline;enable-background:new"
d="M 491.91203,111.33371 C 472.74849,191.80784 359.21234,253.0633 254.5913,293.33179 l 106.02316,0 c 72.75527,0 131.29757,-55.32506 131.29757,-124.03532 l 0,-57.96276 z"
id="rect4484"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 59 KiB

View File

@ -1,581 +0,0 @@
/* XPM */
static const char *icon_16x16[] = {
/* columns rows colors chars-per-pixel */
"319 319 256 2 ",
" c #007400670066",
". c #0D6B09B201FA",
"X c #0A540A540A54",
"o c #093D067402B2",
"O c #13050D090215",
"+ c #1C1C130A013A",
"@ c #17F0116E03C0",
"# c #135113511351",
"$ c #1B481B481B48",
"% c #21BB167F00B3",
"& c #255B194D0161",
"* c #2C2D1D6800E2",
"= c #252F1BD008B3",
"- c #2A9D1E6F08C9",
"; c #2D3C211008B1",
": c #33D222810124",
"> c #397A2625011F",
", c #3DBB2916011F",
"< c #35CD266909A1",
"1 c #2A4C232C1537",
"2 c #32B9287E13BA",
"3 c #3EBF321219FA",
"4 c #23C023C023C0",
"5 c #2BB42BB32BB0",
"6 c #3A763467287E",
"7 c #33673365335F",
"8 c #3BD33BCE3BC1",
"9 c #3996384F361F",
"0 c #35752E6E2161",
"q c #43CD2CF80114",
"w c #45472ED904D0",
"e c #4BE93281018E",
"r c #494D328C06B2",
"t c #51E4362200F2",
"y c #55BE39080141",
"u c #5CD13D4B00F7",
"i c #55963B6A098C",
"p c #496637FF16DE",
"a c #60B13F610097",
"s c #46733BA52773",
"d c #43633EBF3737",
"f c #5F16408E053E",
"g c #5A8543991843",
"h c #63ED4286028D",
"j c #6A1C468A02CE",
"k c #6DF749650442",
"l c #693A48180917",
"z c #74084D4802D8",
"x c #78CE4F4C010E",
"c c #73E84ED70843",
"v c #7D0A52C40133",
"b c #767150F40870",
"n c #7C3154DB09E6",
"m c #7DCF57010C16",
"M c #7797568C16CC",
"N c #69494D8D1838",
"B c #57AD478028F0",
"V c #488A43F53A47",
"C c #56204BD23838",
"Z c #5A1A4EBE3848",
"A c #68AC58413931",
"S c #6DC357202BEE",
"D c #79E5639F38E5",
"F c #7DFE61612AAB",
"G c #42E942D742B6",
"H c #4C2A4C064BAB",
"J c #4B234949456D",
"K c #518B4D9F45F4",
"L c #54A752254CFA",
"P c #5B7A559E49FA",
"I c #53FA53C05333",
"U c #5CB85A1B54EF",
"Y c #5B845B3E5ACE",
"T c #5947573252F7",
"R c #68C85C6E44EB",
"E c #62BC5DF15484",
"W c #61075EC55A74",
"Q c #767B669F4871",
"! c #648E61B55BE9",
"~ c #6AF165E65C63",
"^ c #6C31662B5A12",
"/ c #75606D9F5E90",
"( c #75EA6A76546B",
") c #76516ACC5491",
"_ c #644F643163F8",
"` c #6CAF69DB645F",
"' c #6CAD6C1B6B11",
"] c #68F566DA6356",
"[ c #726C6D4E6356",
"{ c #70F76EBF6ABB",
"} c #7B8E72F96215",
"| c #745A71E06D4C",
" . c #7A5C75A26C30",
".. c #798873EC68C3",
"X. c #761E758D7418",
"o. c #7958773573BB",
"O. c #7C7C79B9745D",
"+. c #7E4C7D717C27",
"@. c #824856610127",
"#. c #860B591B0137",
"$. c #8C2C5D0A011F",
"%. c #83EF5ABB0BC2",
"&. c #89165EBF0C5F",
"*. c #812A5765089E",
"=. c #90AB5F780141",
"-. c #86895EC21127",
";. c #8C4F61C40DF3",
":. c #8F7D60330393",
">. c #9435625B0125",
",. c #9A9F666D0116",
"<. c #9E98691A011A",
"1. c #92C4650B0C35",
"2. c #9E486BC10A0A",
"3. c #8B0261A910A5",
"4. c #8B3564BA1A37",
"5. c #949F69171494",
"6. c #A4376CD60121",
"7. c #A8B56F760120",
"8. c #A2226EEF0B0B",
"9. c #AC8A725E012A",
"0. c #A8E173560BD3",
"q. c #B2AC766D0133",
"w. c #B6AB7927013A",
"e. c #BC377CBC0155",
"r. c #B4797A8E0B0B",
"t. c #A9A978EB193C",
"y. c #B2D77EDA18AB",
"u. c #8B926AB22B94",
"i. c #9B1E74482997",
"p. c #85FF6AF536DF",
"a. c #976076B937B2",
"s. c #8EE46FB633C2",
"d. c #A5927ABF289F",
"f. c #A3487D6E3562",
"g. c #C0DB7F7D01F6",
"h. c #8B0A7410482B",
"j. c #95B87B894949",
"k. c #86CB769B56F9",
"l. c #8A0074FE4D61",
"z. c #850D7B8468ED",
"x. c #83377E1C743B",
"c. c #80CF7F3B7CDA",
"v. c #BAA083F319CB",
"b. c #BD6780AB0B36",
"n. c #BA4D895A2A8F",
"m. c #AB95842537FB",
"M. c #B7F38B92364A",
"N. c #BE1C915B3B05",
"B. c #AF0482022BAC",
"V. c #C4D282480206",
"C. c #CAE486330206",
"Z. c #CED288EC0211",
"A. c #C70B86C20AA4",
"S. c #D45B8C940211",
"D. c #D8E68F890216",
"F. c #D3538EB90A60",
"G. c #DCD49241021E",
"H. c #D87D920A0A0A",
"J. c #C7D38B5116AE",
"K. c #D855970019B0",
"L. c #CDCD90901B1B",
"P. c #E2D196200220",
"I. c #E6E998EC0222",
"U. c #EC439C540239",
"Y. c #E70B9BE40C7A",
"T. c #F13D9F9A0260",
"R. c #E3A79E4319DE",
"E. c #F554A25E025E",
"W. c #FB90A67D026E",
"Q. c #FFF1A9A1030B",
"!. c #FFDCAC9C0C02",
"~. c #F4DAA5600C0C",
"^. c #EB39A38219EC",
"/. c #FFB7AEA912BC",
"(. c #F2F0A8571941",
"). c #FFFAB1FA1C21",
"_. c #FFFFB0B01717",
"`. c #EF99A2220D0D",
"'. c #C32E8E8E28EF",
"]. c #CB98946129DD",
"[. c #D6E49B0C27A0",
"{. c #C9449765370B",
"}. c #D36B9E423768",
"|. c #DB2DA38B37C9",
" X c #DE48A1762C97",
".X c #E854A7032967",
"XX c #F41CAE32285A",
"oX c #FFDAB4782385",
"OX c #FFB0B6EE2B4D",
"+X c #FFFFB8B82E38",
"@X c #F688B1802C69",
"#X c #ECC9AD8A33BE",
"$X c #E48EAA7F3A6C",
"%X c #E699AA43362B",
"&X c #EF2EB1A13B2B",
"*X c #F4A9B304340B",
"=X c #FAC8B6DB3394",
"-X c #FFE6BAA1341B",
";X c #F483B50E3AC1",
":X c #FFBFBD003B88",
">X c #F8D6B7FC3AB2",
",X c #F1C6AFAF3106",
"<X c #9B38845357F5",
"1X c #9D7881384B02",
"2X c #A7FA882D4A7C",
"3X c #BB0A937846D4",
"4X c #A79B8B695515",
"5X c #AEB890ED5776",
"6X c #B767965756A6",
"7X c #B4348E8E45A1",
"8X c #9833881368D1",
"9X c #864480EE762D",
"0X c #8CAE848E74A7",
"qX c #836B81A57E32",
"wX c #8AA786837E40",
"eX c #8EA488EB7E72",
"rX c #946189BC74BD",
"tX c #93668C177DB2",
"yX c #96FC8B5E7513",
"uX c #9BC591CD7E5F",
"iX c #9D9D90907721",
"pX c #8AF5816C6E6E",
"aX c #A937936F697E",
"sX c #ADC49AE876E3",
"dX c #A34496BE7E32",
"fX c #A77D98DD7BEA",
"gX c #B22A9DF87759",
"hX c #ACD1946665C1",
"jX c #B8C9A23B7744",
"kX c #C76B9BA8479D",
"lX c #C3439DDD556A",
"zX c #D70CA6FD49CB",
"xX c #CF01A5D85641",
"cX c #EB7CB33346B5",
"vX c #FFCDBF324242",
"bX c #F5D6B9FE46D6",
"nX c #EA92B6835268",
"mX c #C7B8A5F16547",
"MX c #D0BEB14C74FE",
"NX c #E464BACA6ACA",
"BX c #FFFEC0C04624",
"VX c #FFC5C1AF48B8",
"CX c #F6A0C1165858",
"ZX c #838C832A820D",
"AX c #8CF98A0D846D",
"SX c #932C8E3184AD",
"DX c #9A0694FD8B0D",
"FX c #9974974E9309",
"GX c #A71A9C6A87EA",
"HX c #A3279D5F925D",
"JX c #B4EFA5FB8954",
"KX c #AAB6A337948E",
"LX c #B312A9C997AC",
"PX c #AEC0A37E8D1F",
"IX c #C821B232883B",
"UX c None",
/* pixels */
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX+ : , r y f j j k k z x x z z x x b x x b x x x b z x x x x x b b x x x b b b v v b b b b b v b b z x x x b x x b x x x b b b v x b x x x b x x b b x x x b x x x b x x x b z x x x x b b x x x z x x x x x x b b x x x x b z x x x x b b x x x x b z x x z x x x x x x b z b x x b x x b x x x x z z x x b x x x x x k k j j f y e , * @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXO > t h v #.,.7.e.C.Z.D.G.U.I.U.U.U.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.W.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.U.E.E.U.U.T.`.T.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.U.U.U.I.I.P.D.Z.V.e.9.,.#.v h e : @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: t k #.7.b.S.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.Z.e.8.#.j t - o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& t z :.b.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.Q.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.I.Z.w.:.k t & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: h #.9.C.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.C.9.#.h > UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% u $.q.F.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!.!.!./.!././.!./././.!././.!./.!./.!././.!./.!./._.!.!._.!.!._._./.!./.!./.!./.!.!././.!./.!././.!.!././.!./.!.!./.!./.!.!./.!././.!.!./.!./.!./.!.!./.!.!./.!./.!./.!./.!./.!./.!.!./.!.!.!.!.!.!.!.!.!.!.!././.!.!.!.!.!.!./.!.!.!.!.!./.!.!.!./.!.!.!.!.!.!.!.!.!.!.!.!.!./.!.!.!.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.S.9.@.y & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXe x 7.Z.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.!._._.oX+X:X:X:XBXBXBXBXBXBXBXBXBXBXBXBXvXBXBX:XBXBXvXBXvXBX:X:XBXBXvX:XBXBXBX:X:XBX:X:XvX:XBXBX:X:XBXBX:X:X:XvX:XBX:X:XvX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X:X:X-X:X-X:X-X:X-X:X:X-X-X-X:X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X-X+X-X+X-X+X+X-X-X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOXOXoXoX)._././.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Z.7.x w . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* j :.V.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q./.).+X-XvXBXVXVXBXBXBXBXBXBXBXBXvXBXBXvXBXvX:XBXBXBXvXBXBXBXvXvXvXvXBXBXBXBX:XvX:XvX:XBX:XBX:XBXvXvXBX:X:X:X:X:X:X:XvX:XvX:X:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X:X-X:X:X:X-X:X:X-X:X-X-X-X:X-X:X-X-X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X:X+X-X-X-X-X+X+X-X-X-X-X+X-X+X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOX+XOXOXOX+X+XOXOXoX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.V.:.h & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* k <.S.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q./.oX-XBXBXVXVXVXBXBXBXvXBXBXBXBXBXBXBXBXBXBXBXBXvXBXBXBXBXBX:XBX:XBXvXvXvXvXvX:XBX:XvXvXvXvXBX:XBX:XBXBX:X:X:X:X:XBXBX:XBX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X:X:X:X:X:X:X:X-X:X-X-X-X:X:X:X-X:X-X-X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X+X-X-X-X-X-X-X+X-X+X+X-X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOXOX+XOX+XOXOX+XOXOXOXOXOXOXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Z.<.j & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* k 6.G.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.oX-XBXVXVXVXVXBXBXBXVXVXvXVXVXBXBXBXBXBXBXBXBXBXvXvXvXBXvXBX:XBX:X:XBXBXBX:XvXvXvX:XBX:XBXvX:XvXvX:XBX:X:X:X:X:XBX:XBX:XBX:X:X:X:X:X:X:XvX:XBX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X-X-X-X:X-X-X:X-X:X-X:X-X-X:X-X-X-X:X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X+X-X-X:X+X-X-X+X-X+X-X+X+X+X-X+X-X+X+X+X-X+X+X+X+X+X-X+X+X+X+X+X+X+XOX+X+X+X+XOX+X+X+XOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXoXOXOXOX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.7.j & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* x 7.P.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.).:XvXVXVXVXBXVXVXBXBXVXVXBXBXBXBXBXBXBXBXBXBXBXBXBXBXvXBXvXvXvXvXBXBXBXBXBXBX:XvXvXvXvXvXvXvXvXvXvXvX:XBX:XBXBXBX:X:XBX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X-X:X:X:X:X:X:X-X:X-X:X-X-X-X:X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X+X-X+X-X-X-X+X-X+X-X+X+X+X+X-X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOX+XOX+XOX+XOXOX+XOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.P.7.z - UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ j 6.G.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q._.+XBXvXVXVXVXVXBXVXBXBXBXVXBXBXBXBXBXBXBXBXBXBXBXBXBXBXvXvXvXvXvXBXvXvXvXBX:XBX:XBXBXvXvX:XvX:XvXvX:X:XvX:XvX:X:X:X:X:XBX:X:X:XBX:XBX:XBX:XBX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X-X-X-X:X-X-X:X-X-X:X:X-X-X-X-X:X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X+X-X-X-X-X+X-X+X-X+X-X+X-X-X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+XOX+XOX+X+XOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXoXOXoXOXoXOX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.<.h @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy ,.S.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.oXvXVXVXVXVXVXVXVXBXVXVXBXVXBXBXBXBXBXBXBXVXBXBXBXBXBXvX:X:XBX:XBXBXvXBXvXBXvXvXBXBXBX:XBXvXvXvXvXvXvXvXvXvX:XBX:X:XBX:XBX:X:X:X:X:X:X:X:X:X:XBX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X:X-X-X:X-X:X:X-X-X:X:X-X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-X+X+X-X-X-X+X-X+X-X+X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+XOXOX+X+XOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXoXOXoX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.D.>.y o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* v g.W.Q.Q.Q.Q.Q.Q.Q.Q.Q./.-XvXVXBXVXVXVXVXVXvXVXBXVXBXVXBXBXBXBXvXBXBXBXvXVXvXBXvXvXBXBXBXBXBXBXvXvXvXvXvXvXvX:X:X:XBX:XvX:XvXvXvX:XvX:XvXvXvXvX:XBX:X:X:XBXBX:X:XBX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X-X:X-X:X-X:X:X:X-X:X:X-X:X-X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X+X-X-X-X+X-X-X+X-X+X-X+X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOXOX+XOX+XOXOXOX+XOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXoXoXOXOXOXoXOXOXoXOXoXOXoXoXOXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.V.x & UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXj 6.U.Q.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXVXVXVXVXVXVXvXVXVXvXVXBXBXBXBXBXBXBXBXBXvXBXBXBXBXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvX:XBXBXBXvX:XBX:XvXvX:XvXvXvXvXvX:XvXvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X-X:X:X-X:X:X-X:X:X-X-X:X-X-X-X-X-X-X:X-X-X-X-X-X-X-X+X-X+X-X-X+X-X-X-X+X-X-X-X+X+X-X+X+X+X-X+X-X-X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOX+XOX+X+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXoXOXOXOXOXoXOXoXOXoXoXOXoXOXoXoXOXoXoXOX).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.6.y X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX> #.C.W.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXBXVXVXVXVXVXBXVXVXvXVXvXVXBXBXBXBXBXBXvXBXBXBXvXBXBXvXvXBXvXBXvXBXBXBXvXvXvXvXvXvXvXvX:XvXvXBX:XBXvX:XBX:X:XvXvX:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:XBX:X:X:X:X:X:X:X:X-X:X:X:X:X-X-X:X-X-X:X-X:X-X:X:X:X-X-X-X-X-X-X-X-X-X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X+X-X-X+X+X-X-X+X+X:X+X-X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+XOX+X+XOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXOXOXOXoXoXOXOXOXoXOXOXoXOXoXOXoXoXOXoXoXoXoX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Z.#.- UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy 6.U.Q.Q.Q.Q.Q.Q.Q.Q./.-XVXVXVXVXVXVXVXvXBXVXvXvXVXVXVXvXBXBXBXBXBXBXBXBXBXBXBXvXBXBXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXBX:X:XBX:X:X:XvX:XvXvXvXvX:X:XvXvX:XvX:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X-X:X:X-X:X:X-X:X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X+X-X-X-X+X-X+X-X-X+X-X-X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+XOXOXOXOXOXOXoXoX).).)._._._.)././././.!.!.!.!.!.Q.!.Q.!.!.Q.Q.!.Q.!.!.Q.!.!./././././._.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.6.y UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% v V.W.Q.Q.Q.Q.Q.Q.Q.Q.oXVXVXVXVXBXVXVXVXVXVXVXvXVXVXVXvXVXVXBXBXBXBXBXBXBXBXvXBXvXBXvXvXvXVXvXBXvXBXvXvXvXvXvXvXvX:XvXvXvX:X:X:XBX:X:XBX:XBX:XvX:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X-X-X:X:X-X-X:X:X:X-X-X-X-X:X-X-X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XOX-X-X+X-X+X-X-X-X-X-X+X-X+X-X+X+X+X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXOX+X+X+X+XoXoX)._._././.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.e.v @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX> :.G.Q.Q.Q.Q.Q.Q.Q.Q.).VXVXCXVXVXVXVXBXVXBXvXVXVXvXVXVXvXVXvXVXBXBXvXBXBXVXvXBXvXBXBXvXvXvXVXVXvXBXvXvXvXvXvXvXvXvX:XvXvXvX:XvXvXvXvX:X:X:XBX:XvX:XvXvX:X:X:XvX:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X-X-X:X-X:X-X:X:X-X:X-X-X:X-X-X-X:X:X-X:X-X-X-X-X-X-X>X-X-X-X-X-X-XOX-X-X-X-X-X+X-X-X+X-X+X+X+X-X+X+X+X-X-X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOXoXoX_._./.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.Q.Q.Q.Q.Q.Q.Q.Q.Q.G.=.: UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy 6.`.Q.Q.Q.Q.Q.Q.Q.!.-XVXCXIXNXVXVXBXVXBXVXBXVXBXVXVXvXvXVXvXvXVXBXvXBXBXvXvXBXvXBXvXvXBXvXBXCXIXNXvXvXvXvXvX>XvXvXvXvXvX:XvXvXvX:X:XvXBX:XBXvX:X:X:X:X:XvXvX:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X-X:X:X:X:X:X-X:X:X-X:X-X-X-X-X:X-X:X:X:XCXNXMXjXJXLXLXLXLXLXJXIXMXnXbX-X-X-X-X-X-X-X-X-X+X-X+X-X-X+X+X-X-X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOXoX)._.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.W.zXsXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.xXlX(.W.Q.Q.Q.Q.Q.Q.Q.E.6.t UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXj q.W.Q.Q.Q.Q.Q.Q.Q.oXVXVXNXLXX.LXvXvXVXVXVXBXVXBXBXvXVXVXVXVXVXVXvXBXBXvXBXvXBXBXvXvXvXBXvXvXvXVXLXDXIXVXvXvXvXvXvXvX:X:XvXvXvXvX:XvXvX:X:XBX:X:X:X:XvX:XvX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X-X:X:X-X:X:X:X-X-X:X-X-X:X-X:X:X-X:X:X>XNXMXKXuX| Y H G 7 7 7 7 7 8 H Y .DXPXMXnX;XOX-XOX-XOX+X-X-X+X+X-X+X-X+X+X+X+X-X+X+X-X+X+X+X+XOXoX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aXE ...XW.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X~ 8X XW.W.W.Q.Q.Q.Q.Q.W.q.h o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX. x V.Q.Q.Q.Q.Q.Q.Q.Q.-XVXCXIXSXI J KXNXbXbXbXVXBXBXBXBXvXVXvXVXvXvXVXVXBXvXBXvXBXvXvXBXvXvXvXvXvXvXVXLXG ' KXNXvX:XvXvXvXvXvX:X:XvX:XvXvX:XBX:X:X:X:XBXvX:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X-X:X:X:X-X:X:X-X:X:X-X:X-X-X:XVXMXKXx.H 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 9 Y wXPXMX&X-X-X-X-X-X+X-X-X+X-X+X+X+X+X-X+X+X+XoXoX_.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.zX0X5 9 6XE.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 $ .6X`.E.W.W.Q.Q.Q.Q.Q.V.k . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ v D.Q.Q.Q.Q.Q.Q.Q./.vXBXNXLX' J G J X.MXcXcXbXBXvXBXBXBXVXvXBXBXBXBXvXBXvXBXvXBXvXvXvXvXvXvXvXvXvXvXCXKX8 8 H FXMXcXvXvXvX:X:X:XvXvXvXvX:X:XvX:X:XvX:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X:X-X:X-X:X:X-X:X:X-X:X>X-XCXjXDXY 9 7 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 7 7 7 5 7 8 { PXMX&X@X-X-X-X+X-X+X+X-X-XOXOX)./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.6X! X X yXG.I.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 o G 8XR.E.E.Q.Q.Q.Q.Q.Q.S.v @ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX+ #.G.Q.Q.Q.Q.Q.Q.Q.oXBXVXNXKXY G G G G I LXzXcXbXbXvXBXBXBXBXVXBXBXvXvXvXvXBXvXvXvXvXBXvXBXvXvXvXvXvXvXbXLX8 G G G ZXJXcX&XvX:XvXvX:XvXvX:X:XvXvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X-X:X-X:X:X:X-X:X:X-X:X-X-X:X-X-X:X-XBXMXHXY 7 7 7 7 7 7 7 7 5 7 7 7 7 7 7 7 5 7 5 7 5 7 7 7 5 7 7 ] KXNX*X=X@X-X+X+XoX_./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aXG [ n.S.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 5 rX].U.E.W.!.Q.Q.Q.Q.H.@.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& #.P.Q.Q.Q.Q.Q.Q.Q.+XVXVXIXHXH G G H H G H FX6XzXcXvXbXBXBXBXBXVXvXVXvXBXVXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXbXKXG G 8 8 8 ' LXnX&XbX:X:XvXvX:X:X:XvX:X:X:X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X:X:X-X:X-X:X:X-X-X:X-X-X-X:X-XNXPX_ 7 7 7 7 7 7 7 7 7 5 7 7 5 7 7 7 7 5 7 7 7 7 5 7 5 7 7 5 7 5 8 x.JX$X(./.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX4 9 1Xb.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.6X5 $ z.{.I.E.W.Q.Q.Q.Q.Q.P.#.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX& $.P.Q.Q.Q.Q.Q.Q.!.:XVXVXIXSXJ H G G G G G G X.gXkXzXcXvXBXBXVXvXvXvXvXBXvXvXvXvXvXBXvXvXvXvXvXvXvXvXvXvX>XcXKX8 8 G 8 8 8 Y PXnX&XbX:X:X:X:XvX:X:X:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X:X-X:X-X-X-X:X-X:X-X:XvXMXAX8 7 7 7 7 7 7 7 7 5 7 7 7 7 7 7 7 5 7 7 5 5 7 5 7 5 7 5 5 7 5 4 # X 5 pX}.`.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XrX$ X 0X8.C.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 X } 3XI.E.W.Q.Q.Q.Q.Q.P.#.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX% $.P.Q.Q.Q.Q.Q.Q./.BXVXVXIXSXJ G G G H G G G G I KX7XzXcXbXvXBXvXBXvXvXBXvXvXvXBXvXvXvXvXvXvXvXvXvXvX:XvXvXvXcXKX8 8 8 8 8 8 8 _ KXnX&XvX>XvX:XvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X:X-X:X:X:X:X-X-X:X-X-X:X:X-XbXJX` 7 7 7 7 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 7 5 7 7 5 7 7 5 5 4 $ # o X ` 6XY.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XyX$ ] i.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 X [ 3XP.E.W.Q.Q.Q.Q.Q.P.#.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX@ #.P.Q.Q.Q.Q.Q.Q._.BXVXVXIXDXJ J G H G G G G G G G DX5XkX$XbXvXvXvXvXBXvXvXvXBXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXKXG G 8 G G 8 8 8 Y KXzXcX>XvX:X:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X-X:X-X:X:X-X:X-X-X:X-X-X:X:X-X:X:X-X:XnXKXT 7 7 7 7 7 7 7 7 5 7 7 7 5 7 7 7 7 5 7 7 5 7 7 5 7 5 $ # X K aXK.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XyX$ 9 l.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 X [ 3XP.T.W.Q.Q.Q.W.Q.G.@.@ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX. v G.Q.Q.Q.Q.Q.Q.).vXBXBXNXFXH H G G G G G J G G G G X.fXkXzX&XvXBXvXvXBXBXBXBXvXBXvXvXvXvXvXvXvX:XvXvXvXvX:XvX:XcXKX8 8 8 8 8 8 8 8 8 Y PXcX&X>X>X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-X-X-X:X:X:X-X:X:X-X:X-X-X-X:X:X-X-X-X-X-XnXPXG 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 7 7 5 5 7 7 5 5 $ X 7 yXK.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX4 X qX,.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X5 X ..M.I.E.E.W.Q.W.W.Q.S.x . UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXz S.Q.Q.Q.Q.Q.Q.).vXVXVXNXHXH G G G G J G G G G G G G I KX7X}.cXbXvXBXBX:X:XBXvXvXBXvXvXvXvXvX:XvXvXvXvX:XvXvXvXbXcXKXG 8 8 G 8 8 8 8 8 8 ' JXzX&XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-X:X:X-X:X-X-X:X-X-X-X-X:X:X:XCXDXG 7 7 7 7 7 7 7 7 5 7 7 7 5 7 7 5 7 7 5 7 5 4 # o $ 0X[.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.aX5 ~ u.q.D.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.5X5 # x.L.P.E.E.Q.W.Q.Q.W.Z.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXh V.Q.Q.Q.Q.Q.Q.).VXVXVXCXLXI G G H G G G G G G G G G G G FX8XkX$XBXBXBXBXvXBXBX:XBXBX:XvX:XvXvXvX:X:XvX:XvXvXvX:XbXcXKX8 8 8 8 8 8 8 8 8 8 8 +.jX$X&X>X:X:X:X:X-X:X:X:X:X:X:X-X:X:X-X:X:X-X-X:X:X:X-X:X-X:X-X:X:X-X-X:X:X:X-X-X-X:XnXGXG 7 7 7 7 7 7 7 7 7 5 7 5 7 5 7 7 7 5 7 4 X o $ rX].U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6XG 7 k.7.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X4 4 rXJ.I.T.T.W.W.W.W.Q.g.y o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXt q.Q.Q.Q.Q.Q.Q._.VXVXVXVXIX_ G G G G G G G G G G G G G G G ' fX3XzXcX;XBXvXvX:XBXBX:X:XBXvXvXvXvXvXvXBX:XBX:XvX:XvX>XcXKX8 8 8 8 8 8 8 8 7 8 8 8 AXmX$XbX>X:X:X:X:X:X:X:X:X:X:X:X-X:X:X:X:X:X:X:X-X-X:X:X:X-X:X-X-X:X-X-X-X-X-X-X:XnXHXG 7 7 7 5 7 7 7 5 7 7 7 7 5 7 7 7 5 4 # $ rXL.U.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.zX^ X 0X1.g.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 5 8XZ.P.T.W.W.W.W.W.T.9.w UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX: <.W.Q.Q.Q.Q.Q._.BXVXBXVXIX+.G G H G G G G G G G G G G G G G H KX7XzX$X;XvXvXvXvX:XBX:XBX:XvXvX:XvX:X:XvXBXvX:X:XvX:XvXcXKX8 8 8 8 8 8 8 8 8 8 8 7 J HXxX$X;X:X:X:X:X:X:X:X-X:X:X:X:X:X:X-X:X-X:X-X:X-X-X-X-X-X:X-X:X-X:X-X-X-X-X-XbXKXJ 7 7 7 7 7 7 7 7 7 5 7 7 7 7 5 4 # o $ rXL.U.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XpXX ! i.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X4 L 2XD.I.T.W.W.W.W.W.E.,.* UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXO $.T.Q.Q.Q.Q.Q./.BXVXBXBXNXDXG G G G H G G G G G G G G G G G G G DX5XkX$XbXvXvXvXvXvXBXBX:XBXvX:XBXvXvXvXvX:X:XvXvX:X:X:XcXKXG 8 8 8 8 8 8 8 8 8 8 8 8 Y PX}.$X;X-X:X:X:X:X:X-X:X-X:X:X-X:X:X-X:X-X:X:X-X:X-X-X:X-X:X-X-X-X-X-X:X:X:XJXY 7 7 7 5 7 7 7 7 5 7 7 7 5 5 $ o 5 yXF.U.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.iX$ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 o O.n.D.U.T.W.T.W.W.W.U.#.O UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXz G.Q.Q.Q.Q.Q.!.vXBXBXBXCXLXL G G G G G G G G G G G G G G G G G 8 ' dX3X$XcXvXvXBX:XBX:XBX:XBX:XvXvX:X:XvXvXvXvX:XvX:XvX:XcXKX8 8 7 8 9 8 8 9 8 8 8 8 9 9 +.gX$X&X>X:X:X:X:X-X:X-X:X:X:X:X:X:X:X:X-X:X:X-X:X:X:X-X:X-X:X-X-X:X-X:X>XjX{ 7 7 5 7 7 7 7 5 5 7 7 5 4 X G 4XH.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6XV X 9X,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.5X4 $ pXA.G.U.T.W.W.W.W.W.S.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXy e.Q.Q.Q.Q.Q.Q.-XBXBXBXBXIX{ G G G G G G G G G G G 8 G G 8 G G G G I HX7XzXcX;XvX:XBX:XBX:X:X:XvXvX:XvXvX:XvXvX:XvX:X:XvX:XcXKX8 8 8 8 8 9 8 8 8 7 7 8 8 8 8 FXlX$X;X>X:X:X:X:X:X:X:X-X+X:X:X+X-X-X:X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-XNXqX7 7 7 7 5 7 7 7 7 7 4 # Y 5XD.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. ~ u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.5X5 G <XC.P.U.E.E.E.E.E.W.w.w UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX* <.Q.Q.Q.Q.Q.Q.-XVXBXBXBXNXDXG G G G G G G G G G G G G 8 G 8 G 8 8 8 G DX4XkX$XbXvXvX:XBX:XBXBX:X:X:XvXvX:XvXvX:X:X:XvXvX:X:XcXKX8 8 8 8 8 8 8 7 8 8 7 8 8 9 8 I GXkX$X;X-X:X:X:X:X-X-X:X:X-X:X:X+X:X-X:X-X-X-X:X-X:X-X-X-X-X-X-X-XbXHX9 7 7 7 7 7 7 7 5 $ X o o o ..n.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.iX$ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.5X5 .d.S.I.T.E.E.W.E.E.E.,.% UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXo v U.Q.Q.Q.Q.Q.oXBXBXBXBXVXLXI G G G G G 8 G G G G 8 G G G G G G 8 G G 8 ' fXN.|.bX>XvXBX:XBX:XBX:X:XvX:X:XvX:X:XvXvX:X:X:X:X:XcXKX7 8 8 8 7 9 8 8 7 8 8 8 8 7 7 8 qXmX|.#X-X:X-X-X:X:X:X-X-X:X-X+X:X-X:X-X:X-X-X-X-X-X-X-X-X:X-X-X-XJXH 7 7 7 5 7 7 4 # o $ 0XJ.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.kXK X 9X1.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 4 8Xe.S.I.T.E.E.E.E.E.P.x o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXu V.Q.Q.Q.Q.Q._.vXVXBXBXbXMXO.G G G G G G G G 8 G G 8 G 8 G G G 8 G 8 G 8 H HX7X}.cX>XBXvXvX:XvX:XvXvX:XvXvX:XvX:X:X:X:X:X:X:X:XcXHX8 8 7 8 7 8 8 8 8 7 8 7 8 7 8 7 J HXkX$X&X>X-X:X:X-X:X-X:X-X-X:X:X+X:X-X-X:X+X:X-X-X-X-X-X-X-X-XMX .7 7 7 7 7 $ X G <XS.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.0Xo ~ u.q.S.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.2X5 Y f.V.H.U.T.E.E.E.E.E.e.t UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUX& <.Q.Q.Q.Q.Q.!.:XBXBXBXBXCXLXH G G G G G G G G G G G G G 8 G 8 G G 8 G 8 G G DX4XkXcXbX:X:XvXvX:XvX:XvX:X:X:X:X:XvX:XvXvX:XvXvX:XcXKX8 8 7 8 8 8 7 8 7 8 8 8 8 7 7 8 9 ' gX}.$X;X:X-X-X:X-X:X:X-X:X:X:X:X-X:X-X-X:X+X:X-X-X-X-X-X-XbXGX8 5 7 5 $ X [ B.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X7 7 l.6.C.U.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 # pXr.Z.P.T.E.T.E.E.E.T.=.& UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXx I.Q.Q.Q.Q.Q.-XBXBXBXBXBXIX' G G G G G 8 G 8 8 G G G 8 G G 8 8 G 8 G 8 G G 8 ' fX3X|.&X:XvX:X:X:XvX:XvX:X:XvX:X:X:X:X:X:X:X:X:X>X&XKX7 8 8 8 8 7 7 8 8 7 7 7 7 8 8 7 9 8 FXkX|.#X>X-X:X-X-X:X-X-X:X+X+X:X-X+X+X:X+X:X-X-X-X-X-X-X:XJXH 7 5 $ o $ 0XA.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. X 0X1.g.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X4 G j.e.S.I.T.T.T.T.E.W.S.j o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXw w.Q.Q.Q.Q.Q.oXBXBXBXBXBXCXHXG G G G G G G G G G G 8 G G G 8 G G 8 G 8 G 8 8 8 H HXm.zX$XbXvXvXBX:XvX:X:XvX:X:XvX:XvX:X:X:X:X:X:X:XcXHX8 8 8 7 8 7 8 8 8 8 7 8 7 8 7 8 7 9 ! dX}.$X*X-X-X-X:X-X:X-X-X:X:X+X-X:X:X+X:X+X-X-X-X-X-X-XNXx.5 # H 1XC.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.hX4 ! u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 X 9X0.C.G.U.T.T.T.T.T.T.9.> UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUX. $.E.Q.Q.Q.Q.!.vXBXBXBXvXVXIX_ G G G G G G 8 G G 8 G G 8 8 G G 8 G 8 G 8 8 8 8 G 8 FX4X{.$XbX>XvXvXvX:XvXvX:X:X:X:X:X:X:X:X:X:X:X:X:X&XKX8 7 7 8 7 8 8 7 7 7 8 7 8 7 8 7 7 9 8 FX3X|.#X>X-X:X-X:X-X-X-X-X+X:X+X:X+X:X+X-X-X-X-X-X-X>XPX4 o # 4 7 8 9 8 7 4 $ o o O.v.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X[ 7 k.6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.5X5 G j.w.S.P.T.T.T.T.E.T.P.v o UXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXy C.Q.Q.Q.Q.Q.-XBXBXBX:XBXCXHXG G G 8 G 8 G G G 8 G 8 G 8 G 8 8 G G 8 8 G 8 G 8 8 8 ' dXN.zX&X:X:X:X:X:X:X:X:X:XvXvX:X:X:X:XvX:X:X:X>XcXHX8 8 8 8 8 7 7 8 7 8 7 8 8 7 7 7 9 7 7 Y GX{.$X*X>X-X-X-X:X:X-X-X-X+X:X+X:X+X:X-X-X-X-X-XOXxXJ $ G ! X.` U K K K K K U ] O._ G 4 7 <XV.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.aX4 o 9X1.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.5X4 X x.t.V.G.P.T.T.T.T.T.T.e.q o UXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXO >.W.Q.Q.Q.Q._.BXBXBXBXBXBXIX' G 8 G 8 G G 8 8 G G 8 G 8 G 8 G 8 8 8 8 G 8 8 8 8 8 8 H HXM.}.$X>XvXBX:X:X:XvX:XvX:X:X:X:X:X:X:X:X:X:X>XcXHX7 7 8 7 7 8 7 7 8 8 7 7 7 8 7 8 7 7 7 9 FX3X}.#X=X=X:X-X-X-X:X-X-X-X+X:X+X:X+X-X-X-XOX_.^.rXo X G | ` V 0 = + & & * * * * * * * 3 C ` o.G # o ..d.Z.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X.. ! u.w.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.T.5X5 G j.9.S.P.I.T.T.T.T.T.U.$.O UXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXu Z.Q.Q.Q.Q.Q.:XvXBXvXBXBXbXKXG G G G G G 8 G G G 8 G 8 G 8 G 8 8 G G 8 8 8 8 8 G 8 8 8 DX4XkX$X;XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XcXLXI 8 7 8 8 7 7 8 7 7 7 8 7 7 7 7 7 8 9 9 _ aX{.$X;X-X-X-X-X-X-X-X+X:X:X+X:X+X:X+XOX).Q.Q.6X7 X H O.L 1 + & - : > q e t y y y y t t q q , 3 P O.L # 5 <Xb.G.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 7 k.6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.T.3XU o X 9X2.g.D.I.U.T.U.T.T.T.V.w X UXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXO ,.Q.Q.Q.Q.Q.oXBXBXBXvXvXBXMX' G G G G 8 G G G 8 8 G G 8 8 G 8 8 8 G 8 8 G 8 G 8 8 8 8 8 ' dXN.|.;X:XvX:XvX:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X*XzXPX| 8 9 8 7 8 7 7 8 7 8 7 7 7 9 7 7 7 9 8 HXN.}.#X=X-X-X-X-X-X-X-X-X-X-X-X-X+X).Q.Q.Q.(.0X 8 X.J = + * > w t y h k x v v #.#.*.@.x z j a y w r Z +.G .t.Z.Y.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.^.z. X 9X1.g.P.E.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.T.H.2X{ # I a.q.Z.P.U.U.U.T.U.T.U.$.. UXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXy Z.Q.Q.Q.Q.!.vXvXBXvXBXvXVXLXH G G 8 G 8 8 G G G 8 8 8 G 8 8 G G 8 8 G 8 8 8 8 8 8 8 8 8 H FXm.zX$X;X:X:XvX:X:X:X:X:X:X:X:X:X:X:X:X:X:X>X;X$XkXfXZX8 7 9 7 9 7 7 7 7 9 7 9 9 7 7 7 7 7 X.hX{.%X*X>X-X-X-X-X-X-X-X-X-X+X_.Q.Q.Q.Q.Q.6X8 # ] W = & * > e y h x #.:.,.6.7.9.q.q.9.9.7.6.,.=.@.z h y t ^ { $ 5 pXw.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.lX8 ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.T.G.V.a.O.4 $ z.<.g.D.P.U.U.U.U.U.T.V.w o UXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXO :.Q.Q.Q.Q.Q.OXBXvXvXBXvXvXNX9X8 G G 8 8 G 8 G 8 G G G G 8 8 G 8 Y 8 8 8 8 8 8 8 8 G 8 8 8 8 AX4X{.$X;X>X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X;X$X{.m.iXAXG 7 7 7 8 7 9 7 7 7 7 7 9 7 7 7 7 G HXN.|.%X=X-X-X-X-X-X-X-X-XoX!.Q.Q.Q.Q.Q.(.yXo 8 | 6 + * > e u k #.>.6.q.e.V.Z.Z.D.S.D.D.S.Z.C.g.e.9.6.>.@.j y B O.8 o .t.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.yXX # $ 7 l.6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.T.P.C.6.4.x.5 ] u.w.Z.P.P.U.U.T.T.T.U.@.. UXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXe V.Q.Q.Q.Q./.vXvXBXvXvXvXBXLXL G G 8 G G 8 G 8 G 8 8 8 G 8 8 8 _ FXI G 8 8 8 8 8 8 8 8 8 8 8 ' fXN.zX&X>X:X:X:X:X:X:X:X:X:X-X:X-X:X:X-X:X:X>X&X|.N.f.z.FXG 9 7 7 7 7 7 9 7 7 7 7 7 7 7 7 7 qX5X].%X*X-X-X-X-X-X-XOX!.Q.Q.Q.Q.Q.Q.Q.kXV I ] 1 & : q u k #.<.9.V.Z.S.G.P.U.U.U.T.T.T.U.U.I.P.G.S.C.e.7.,.@.k f } I o 9 j.w.G.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.T X ` I X x.,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.T.U.S.q.=.M z.7 5 k.6.V.H.P.U.U.U.U.U.U.w., UXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUX@.E.Q.Q.Q.Q.-XvXvXBXvXvXvXNXDXG G 8 G 8 G 8 8 G 8 G 8 8 G 8 8 _ FXc.X.G 8 8 8 8 8 8 8 9 8 8 8 G HXm.}.cX>X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X:X-X*X%X}.M.a.k.SXG 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 I uX'.|.#X=X-X-X-XOX/.Q.Q.Q.Q.Q.Q.Q.Q.~.yXX X ! U + * , t j #.<.q.g.S.G.I.`.E.E.E.W.W.W.W.W.W.W.W.E.E.U.I.H.Z.g.9.,.v h Q _ X X x.0.Z.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ X { J X. E u.q.S.U.W.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.W.W.E.U.G.C.9.=.l x.7 x.1.q.S.P.U.U.U.U.U.U.P.z UXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUX< w.Q.Q.Q.Q.!.vXvXvXBXvXvXvXMX_ G G 8 8 8 8 G G 8 8 8 8 G 8 8 Y FXI P FX8 8 8 8 8 8 8 8 8 8 9 7 8 SX4X{.$X;X:X:X:X:X:X-X:X:X:X-X:X:X-X-X:X-X:X:X>X&X%X}.M.f.8XAX8 8 7 7 7 7 7 7 7 7 7 7 7 5 7 9 FXm.}.%X*X-X-X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.L X ` K % * q u z >.9.V.S.P.U.E.E.W.W.Q.Q.Q.Q.Q.Q.W.Q.Q.W.Q.W.W.E.E.U.G.Z.e.6.$.k Q { X H a.w.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X} o { V @ _ 5 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.E.W.W.E.W.E.T.I.G.V.6.=.c x.5 H p.6.V.D.P.U.I.U.U.U.U.6.* UXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXk P.Q.Q.Q.Q.+XvXvXvXvXvXBXbXLXG 8 8 G 8 G G G 8 G G 8 8 8 G I FXE K Z SXI 8 8 8 8 8 8 8 8 8 8 8 8 ' iXN.|.&X:X:X:X:X:X:X:X:X:X:X-X:X:X-X:X:X-X:X-X=X&X$X}.N.f.yXZX7 7 8 7 7 7 7 7 7 7 7 7 7 7 7 X.hXN. X*XoX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ X ] K % : w h @.<.w.Z.G.U.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.W.E.E.U.H.C.q.>.x D { X $ pX6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.lX7 W K % * C I X 0X1.g.P.E.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.E.E.E.E.E.T.I.D.V.9.=.M O.$ $ z.,.w.S.P.P.I.U.I.U.U.Z.y UXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXO <.Q.Q.Q.Q.!.:XBXvXvXvXvX:XNXwXG 8 G 8 G 8 8 8 8 8 8 8 8 G G FX~ Z A D pXX.8 8 9 8 8 8 9 8 8 9 7 8 G HXm.}.$X;X>X:X:X:X-X:X-X:X:X:X-X:X:X-X-X:X-X:X-X;X#X%X}.M.f.SX' 7 7 7 7 7 7 7 7 7 7 7 7 7 5 H uXn.}.^.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..XpX _ K & : e j $.6.V.S.I.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.P.S.e.6.@.Q ` o { i.g.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.iXX H W & * q i O.o ! u.q.F.U.W.Q.W.W.Q.W.W.W.W.W.W.T.W.E.W.W.E.E.E.U.U.D.C.9.=.F | X | 4.7.V.G.P.I.I.I.I.U.U.=.. UXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXe V.Q.Q.Q.Q.oXvXvXBXvXvXvXvXMXY 8 G 8 8 8 G 8 G 8 8 8 8 8 8 ZXX.Z R D s.1XFX8 8 8 8 8 8 8 8 8 7 7 8 8 AX4X{.$X;X:X:X:X:X-X-X:X:X:X-X:X-X:X-X:X-X:X-X:X-X>X*X%X}.N.f.DXI 7 7 7 7 7 5 7 7 7 7 7 7 7 7 FXf.b.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.kX8 U T % : t j $.9.C.H.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.H.V.6.$.) W 8 l.9.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ 5 | = : e h k k.5 5 k.6.Z.I.E.W.W.Q.W.W.W.E.W.W.E.W.E.W.T.W.E.E.T.T.T.P.G.C.9.=.h.Y G l.,.w.S.P.P.I.I.I.U.U.q.> X UXUXUXUXUXUXUX",
"UXUXUXUXUXUXz T.Q.Q.Q.Q.:XBXBX:XvXvXvXbXLXG G 8 G G 8 8 8 8 8 G G 8 8 ' AXK A p.a.2X2XGXI 8 8 8 8 7 8 8 8 8 8 8 8 _ dXN.|.&X>X:X-X:X:X:X:X-X-X:X-X:X-X:X-X:X-X:X:X-X=X=X&X%X}.M.1XDX8 7 7 7 7 7 7 5 7 7 5 7 5 5 T s.9.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.!.W.iXX G _ & : t k >.q.Z.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.G.V.7.$.k.H X 0X,.V.Y.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X7 X O.2 * e j @.:.a.T X 0X1.V.G.E.W.W.W.W.W.W.W.W.E.W.E.W.E.W.T.T.E.E.E.T.T.P.D.C.7.$.z.7 $ x.$.q.Z.G.P.I.I.I.I.I.D.h UXUXUXUXUXUXUX",
"UXUXUXUXUX@ 6.Q.Q.Q.Q.).vXvX:XvX:XvX:XNXZXG 8 G 8 8 G 8 8 G 8 8 8 8 H FXP P D a.m.N.{.jXX.8 9 8 8 7 8 7 7 8 8 7 8 G FXm.}.%X;X-X:X:X:X:X-X-X:X:X:X-X:X-X-X:X-X-X-X-X-X:X=X&X%X}.M.aX+.7 7 5 7 7 7 7 5 7 7 7 4 4 z.<.V.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q. X^ 4 | = : e j >.9.Z.P.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.P.V.7.&.x.5 ! i.w.H.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.iXX W V - q h #.6.q.q.9XX W u.q.S.U.E.W.W.W.W.W.W.W.W.E.E.E.E.E.T.W.T.E.T.T.T.U.P.D.V.7.&.x.# .4.6.V.G.P.P.I.I.I.U.U.=.. UXUXUXUXUXUXUX",
"UXUXUXUXUXe C.Q.Q.Q.Q.-X:XvXvXvXvXvXvXIX_ 8 8 8 8 8 8 8 8 8 8 8 8 8 AX' Z D a.2XkX}.|.kXHX8 8 9 8 8 8 7 8 8 8 7 9 9 AX4X{.$X;X;X-X:X-X-X:X:X-X-X-X:X-X:X-X-X:X-X-X:X-X-X-X=X*X X}.B.DXI 7 7 7 7 7 5 7 7 5 X o x.1.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.6X5 X | 0 : q j =.q.Z.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.V.7.4.O.X 7 k.7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q..X/ 7 ] & q h #.7.V.Z.V.<X5 5 k.6.C.P.E.W.E.W.E.W.E.E.W.E.W.E.E.E.E.T.E.T.E.T.T.T.T.P.S.e.<.p.~ G p.,.w.S.G.P.I.P.I.I.I.q.> o UXUXUXUXUXUX",
"UXUXUXUXUXk T.Q.Q.Q.!.:XvXvXvXvXvX:XBXLXG 8 8 8 G 8 8 G 8 8 8 8 8 Y AXZ D h.m.N.zX&X$X|.HXI 7 8 7 7 8 8 8 7 8 8 9 9 _ iXM.|.&X>X-X:X-X:X-X:X-X:X-X:X-X-X:X-X-X:X-X-X-X:X-X-X>X#X|.].2XDX7 7 7 7 7 7 7 4 o T s.9.S.U.W.Q.Q.Q.Q.Q.Q.Q.W.iXX I K * q h $.9.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.G.V.6.s.W X 0X,.V.G.E.W.Q.Q.Q.Q.Q.Q.W.kX8 X X.2 > t x 6.V.H.P.S.M.U X 9X1.e.G.U.E.W.W.E.W.E.E.E.E.E.E.W.T.T.T.T.T.T.T.T.T.U.U.P.S.q.,.z.5 $ z.#.q.C.G.P.P.P.P.I.I.S.u UXUXUXUXUXUX",
"UXUXUXUX. ,.Q.Q.Q.Q.oXvXvXvXvX:XvXvXnXDX8 8 G 8 8 8 8 8 8 8 8 8 G DXE A D f.3X}.$X&X;X$XmXX.8 8 8 8 8 7 7 8 8 7 7 9 V HXm.}.$X;X:X:X:X-X-X-X:X-X:X-X:X-X-X:X-X-X-X-X-X-X-X-X-X=X#X|.{.iX` 5 7 5 5 5 # 5 k.<.C.I.E.Q.Q.Q.Q.Q.Q.Q..X[ 5 ` * , y @.6.C.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.V.<.z.7 ] u.w.S.T.W.Q.Q.Q.Q.Q.Q.W.aX$ G P : e k 1.e.H.U.T.I.A.0Xo E u.q.S.I.E.W.E.W.E.W.E.E.E.E.E.T.T.T.W.T.T.T.T.T.T.U.U.I.G.C.q.5. .o x.*.6.V.S.G.P.P.P.P.P.U.#.X UXUXUXUXUXUX",
"UXUXUXUX> e.Q.Q.Q.Q.-XvXBX:XvX:XvX:XMX' G 8 G 8 8 8 8 8 8 8 8 8 | +.P D s.7X{.$X;X>X>X$XzXFX8 7 8 8 7 8 8 7 8 7 8 7 9 AX4X{.$X;X>X-X-X:X:X-X:X-X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X=X*X%X}.M.HX8 7 7 4 X X 9X>.b.G.T.Q.Q.Q.Q.Q.Q.W.kXV o | 0 : t x 6.V.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.e.5.x.X G h.6.C.U.E.Q.Q.Q.Q.Q.Q.~.0X # .; q h $.q.S.I.E.E.T.S.<X5 5 k.6.V.I.T.E.W.E.E.E.E.E.E.E.E.W.T.T.T.T.T.T.T.T.T.U.U.I.P.S.V.6.k.V U F ,.w.S.G.P.P.P.P.I.I.6.& UXUXUXUXUXUX",
"UXUXUXUXy G.Q.Q.Q.!.vXvX:XvXvXvXvXvXLXI 8 8 8 8 8 8 8 8 8 8 8 J DXP A p.2X{.$X&X>X:X:X;X|.PXI 8 7 7 8 7 7 8 7 8 7 9 9 ! iXM.|.&X=X-X:X-X:X-X-X-X:X:X-X-X-X-X-X-X-X-X-X-X-X-X-X-X=X*X X{.aX| 5 $ | -.q.H.U.W.Q.Q.Q.Q.Q.W.aX# G T * e j >.w.S.U.E.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.I.S.q.l.H # z.,.V.P.E.Q.Q.Q.Q.Q.Q.|.U Y V : t x 6.V.P.E.W.Q.E.G.M.U X x.>.e.D.T.E.E.E.W.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.U.T.U.U.U.P.S.r.8.x.X 9 ) $.9.C.G.G.P.P.P.P.I.g.w o UXUXUXUXUX",
"UXUXUXUXx E.Q.Q.Q.).BXvXvXvXvX:X:XbXKXG 8 8 8 8 8 8 8 8 8 8 8 X.[ A D j.N.}.$X>XvX:X-X;X$XmXX.9 9 9 7 8 7 8 7 7 8 7 7 G FXm.}.%X;X-X-X:X-X-X:X-X-X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X@X#X|.N.DX$ H p.6.Z.U.E.Q.Q.Q.Q.Q.`.0X X o.; > f #.b.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.G.C.0.0X# O.;.w.H.T.W.Q.Q.Q.Q.W.6X5 $ | * q j :.e.G.T.W.Q.Q.E.P.A.0XX W u.9.S.I.T.W.T.E.E.E.E.E.T.E.T.T.T.T.T.T.T.U.U.U.U.U.U.I.I.G.g.q.l.J # z.@.6.V.S.P.P.G.P.P.P.G.a UXUXUXUXUX",
"UXUXUXo ,.Q.Q.Q.Q.+XvX:XvX:X:XvX:XCXSX8 8 8 8 8 8 8 8 8 8 8 G FXP D p.m.{.$X;X>X:X:X:X;X#XzXHX9 7 9 8 7 8 7 7 8 7 8 8 7 AX4XN.$X&X-X:X-X:X-X-X-X-X-X:X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X*X%XL.1XK 5 k.1.V.P.E.Q.Q.Q.Q.W.|.P L K : t v <.b.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.V.a.U T u.7.Z.U.W.Q.Q.Q.Q.E.aX# I V > u #.9.Z.U.T.Q.Q.Q.W.T.D.<X5 5 k.6.g.P.T.E.E.E.E.T.E.T.T.T.T.T.T.U.T.U.U.T.T.U.U.U.I.U.I.P.S.g.8.c.X O.M ,.e.Z.D.G.P.P.G.P.P.#.o UXUXUXUXUX",
"UXUXUX* w.Q.Q.Q.Q.:X:XvXvX:XvX:XvXMX' 8 8 8 8 8 8 8 8 8 8 9 ' +.A D f.N.|.&X>X:X:X:X:X:X&X|.GXL 8 7 8 8 7 7 7 8 7 7 7 9 _ iXM.|.#X-X-X:X-X-X-X-X:X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-X-X-X=X^.S.r.0XX X x.$.w.H.E.W.Q.Q.Q.Q.6X7 # o.; w h :.b.S.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.S.0.pX$ 7 k.>.C.P.E.Q.Q.Q.Q.`.rX # .: e k ,.g.G.T.W.Q.Q.Q.W.E.G.M.U X x.:.w.D.I.T.E.E.E.E.E.T.T.T.T.T.U.T.U.T.U.U.U.U.U.U.U.U.U.I.G.C.q.j.8 U F :.q.C.G.G.P.G.P.P.P.6.% UXUXUXUXUX",
"UXUXUXe Z.Q.Q.Q./.:XBX:X:XvX:XvXvXIXI 8 8 8 8 8 8 8 8 7 8 G FXP R s.m.kX$X;XvX:X:X:X:X=X;X$XmXX.7 9 7 7 8 8 7 7 9 7 7 7 8 HXm.}.%X*X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X+X+X/.E.P.V.1XG .-.9.S.U.W.Q.Q.Q.Q.aX# J K : f v 7.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.f.I # z.=.w.G.T.W.Q.Q.W..X^ H K > u #.q.Z.U.W.Q.Q.Q.Q.W.W.U.A.0Xo T s.9.Z.I.T.E.T.T.E.T.E.T.T.T.T.T.T.T.U.U.U.U.U.U.U.I.U.I.I.P.D.g.8.O. 8 Q #.9.g.S.G.G.G.G.P.P.9.> X UXUXUXUX",
"UXUXUXh P.Q.Q.Q.).vX:XvX:XvXvX:X>XLX8 8 8 8 8 8 8 9 9 8 9 ' +.Z D f.N.|.;X>X:X-X:X-X:X+X>X&XzXHX8 7 7 9 7 7 8 7 9 7 7 7 7 wX4X{.$X#X-X-X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X+X-X-X-X-XOX!.Q.W.T.D.y.x. Y u.,.C.I.E.Q.Q.Q.`.rX o X.< w k >.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.T.D.w.0XX O.-.9.S.U.W.Q.Q.W.kX8 X o.< e z ,.V.P.E.W.Q.Q.Q.Q.Q.W.U.D.<X7 5 k.,.g.P.T.T.E.T.T.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.I.U.I.I.I.G.Z.w.k.5 4 ) @.6.g.S.D.G.G.G.P.P.C.e o UXUXUXUX",
"UXUXUXv E.Q.Q.Q.-X:XvX:XvX:X:XvXnXGX8 8 8 8 8 8 8 8 8 9 8 AXR R s.m.}.cX;X-X:X:X:X:X:X:X-X&X|.fXI 7 8 7 7 7 7 7 7 9 7 9 7 W iXM.}.#X>X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X-X-XoX!.Q.Q.W.E.P.V.8X4 V p.>.V.P.E.Q.Q.W..X( 9 U > y #.9.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.I.V.1XJ Y u.6.Z.U.W.Q.Q.W.hX4 8 P > u *.q.Z.U.W.!.Q.Q.Q.Q.Q.Q.T.P.M.U X x.1.w.S.I.T.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.I.U.U.I.U.I.I.I.I.G.S.g.f.! X x.k ,.w.Z.S.P.G.G.G.G.D.h UXUXUXUX",
"UXUX >.Q.Q.Q.Q.:XvX:XvX:X:X:X:XnXAX8 8 8 8 8 7 8 7 8 9 I AXA D 1XN.|.#X>X-X:X:X-X:X:X:X-X;X$XmXX.7 8 7 7 7 9 7 7 7 7 7 7 8 HXm.}.%X*X-X-X-X-X-X-X-X-X+X-X-X-X-X-X-X+X+X-X-X).Q.Q.Q.Q.Q.W.U.S.B.I 4 } $.e.G.E.W.Q.Q.zXG ' 3 w j >.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.`.D.v.9Xo G h.,.C.P.E.W.Q.W.iXX { 3 q k ,.V.P.T.W.Q.Q.Q.Q.Q.Q.Q.T.I.C.eXo U u.7.C.P.T.T.T.T.T.T.T.T.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.I.I.P.D.g.9.eXX | M =.q.C.S.G.G.G.G.P.P.n UXUXUXUX",
"UXUXO 7.Q.Q.Q.!.:X:XvX:X:XvXvX:XNX' 8 8 8 9 9 8 8 8 9 8 X.} A h.m.{.$X;X:X:X-X:X:X:X+X:X:X;X#XzXFX8 7 7 9 9 7 7 7 7 9 7 7 7 wX4X{. X&X-X-X-X-X-X-X-X-X+X-X-X-X+X+X-X-X-X+X_.Q.Q.Q.Q.Q.!.W.E.G.A.0Xo X x.@.9.H.T.W.Q.Q.5X4 $ | > y v 9.Z.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.V.8X4 4 ) =.e.H.E.W.W.`.rX # | : y #.9.Z.I.W.Q.Q.Q.Q.Q.Q.Q.W.W.U.S.<X5 5 k.,.g.G.U.T.T.T.T.T.U.U.T.U.U.U.U.I.U.U.U.I.U.I.I.I.I.P.I.P.G.S.e.j.7 T S #.9.g.S.D.G.D.G.G.G.=.. UXUXUXUX",
"UXUX- w.Q.Q.Q._.:XvX:X:X:XvX:X:XJXY 8 8 8 8 8 7 7 8 8 8 FXP D a.M.|.$X;X:X:X:X:X:X-X:X:X-X>X*X|.GXI 9 7 7 7 9 7 7 7 7 7 7 7 Y iXM.|.#X>X-X-X-X-X+X-X-X-X-X-X+X-X-X+X-XOX_.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X5 +.m 7.Z.I.W.Q.E.iX# G C w j >.b.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.m.T X x.#.q.S.E.W.Q..X/ V K , j =.g.G.T.Q.Q.Q.Q.Q.Q.Q.W.W.W.T.G.M.W o x.:.w.Z.U.U.T.T.U.T.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.I.P.G.S.C.d.~ G D v 6.g.Z.G.G.D.G.G.G.6.% UXUXUXUX",
"UXUXq V.Q.Q.Q.).:X:X:X:X:XvX:X>XJXG 8 8 8 7 8 8 7 8 7 I ZXR D m.{.$X;X:X-X:X:X:X-X:X-X-X:X=X;X$XmXX.7 7 7 7 7 7 7 7 7 7 7 7 8 HXB.{.%X*X-X-X-X-X-X-X-X+X+X-X-X-X-X-X+X!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.M.E ] M 6.C.I.E.Q.~.yX | 2 t x 7.Z.P.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.b.0Xo x.*.7.S.U.E.W.|.J | 3 t x 7.Z.U.E.W.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.A.0XX T p.6.C.P.U.T.U.U.U.T.U.U.U.U.I.U.I.U.I.I.I.I.I.I.I.I.I.P.I.P.D.C.q.rXX 5 ) x <.w.Z.S.D.D.D.G.G.7.- UXUXUX",
"UXUXt S.Q.Q.Q.OX:X:XvX:X:X:X:X>XLXG 8 7 7 8 7 8 8 8 7 X.} R s.M.}.#X;X:X:X-X:X-X:X-X:X-X-X-X=X#X}.HX9 7 7 7 7 7 7 7 7 7 7 5 7 qX4X{. X*X-X+X-X-X-X-X-X+X+X-X-X+X+XOX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.A.0Xo L D >.V.P.E.W.^.z. $ ] , h $.q.D.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X4 ` M <.C.I.W.E.lX7 $ { , h $.w.D.U.W.Q.Q.Q.Q.Q.Q.W.Q.W.W.E.U.S.<X5 5 k.,.g.D.U.U.U.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.G.Z.e.<X7 $ ..k ,.q.C.S.D.D.D.G.G.q.> X UXUXUX",
"UXUXy D.Q.Q.Q.-X:XvX:X:X:X:X:XnXHX8 8 7 8 8 8 8 8 7 8 FXR D a.N.|.&X>X:X-X:X-X:X-X:X-X:X-X:X>X*X|.GXI 7 7 7 7 7 7 7 7 7 7 7 7 Y iXn.}.#X*X-X-X+X-X+X-X-X-X-X+X-XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.H.<X4 9 Q :.e.G.E.W. X^ H C w k ,.V.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.M.U L D 1.V.P.~.E.5X4 8 P w k ,.V.P.E.Q.Q.Q.Q.W.Q.W.W.W.W.W.E.T.D.n.E X x.$.q.Z.P.U.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.P.I.P.P.I.P.P.P.P.G.S.C.d.^ X x.h $.9.C.S.D.D.D.G.P.e.w o UXUXUX",
"UXUXh P.Q.Q.Q.:XvX:X:X:X:X:X>XnXeX8 8 9 8 7 8 7 7 8 H SXA p.m.{.$X;X=X-X:X-X:X-X:X:X-X:X-X-X:X*X$XmXX.7 7 7 7 7 7 5 7 7 7 5 7 8 DXB.{..X*X+X-X-X-X-X-X+X+X-X-XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.M.H 5 ) #.q.G.T.E.zXJ X.3 y v 0.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.A.0X 8 Q =.e.P.T.E.aX# W s y x 7.Z.U.W.W.W.Q.W.W.Q.W.W.W.W.W.E.T.P.V.eXo U p.6.C.G.U.U.U.U.U.U.U.U.I.U.U.I.I.I.I.I.I.P.P.P.P.P.P.P.G.P.H.C.r.0X o.l #.9.g.Z.S.D.D.D.G.V.e UXUXUX",
"UXUXk U.Q.Q.Q.:X:X:X:X:X:X:X=XNXO.9 8 9 8 7 7 8 9 8 Y x.A a.M.}.&X;X-X:X-X:X-X:X-X-X-X-X:X-X-X>X%X}.HX7 7 7 5 7 7 7 7 7 7 7 7 7 qX4XN. X*X-X+X-X-X+X-X+X-X+XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.'.[ $ } @.9.S.U.E.3X7 # ., h =.e.D.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.yX$ 5 ) #.q.D.T.T.uX +., f $.w.G.U.W.Q.Q.Q.Q.W.W.W.W.E.W.W.E.T.P.S.<X7 5 k.>.e.D.P.U.U.U.U.U.I.U.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.G.S.e.pX$ ` N @.6.g.Z.S.S.D.D.D.Z.y o UXUXUX",
"UXUXx E.Q.Q.!.:XvX:X:X:X:X:X>XNX' 7 9 9 8 8 8 7 7 8 X.} D a.N.|.#X-X-X:X:X-X:X-X-X:X-X:X-X-X-X=X&X|.gXL 7 7 7 7 7 5 7 5 7 7 5 5 Y iXn.|.#X*X+X+X+X-X+X-X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.S.rXo # o.x 6.Z.U.T.aX$ 5 E w k <.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.2X9 $ } @.9.S.U.`.0X $ [ q j ,.V.P.~.Q.W.Q.Q.W.W.W.W.W.W.W.W.W.T.U.D.n.! o x.&.q.Z.P.I.U.U.P.U.U.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.P.G.G.G.S.V.1X8 Y S n 6.w.Z.S.D.D.D.D.Z.y o UXUXUX",
"UXUXz E.Q.Q./.:X:X:X:X:X:X:X>XMXY 9 9 9 7 8 7 7 8 7 SXQ D f.{.$X;X:X-X-X:X-X-X:X-X-X-X-X:X-X-X-X*X%XmXX.7 5 7 7 7 7 7 7 5 7 7 7 8 FXm.].%X@X-X+X-X+X-X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.8X4 9Xx 6.C.I.U.aX# I B t v 7.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.'.E X x.x 7.Z.U.R... 8 P t x 7.Z.U.E.Q.W.W.Q.W.W.W.W.W.W.E.T.W.E.T.G.g.0XX T u.6.g.G.P.I.U.I.U.I.I.U.I.I.I.I.I.I.P.P.P.P.P.G.P.G.G.P.G.G.S.C.B.E H A x ,.w.C.S.S.S.D.D.F.u UXUXUX",
"UXUXx W.Q.Q./.:X:X:X:X-X:X:XvXjXI 8 7 8 7 7 8 7 8 G DXA p.m.}.%X=X=X:X:X-X:X-X:X-X:X-X-X+X-X-X-X=X#X}.HX7 7 7 7 7 7 7 7 5 7 7 5 5 9X4X'. X,X=X-X+X+X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.7XG .c ,.V.P.U.iXX | p u =.q.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.F.0X qXz 6.C.P.[.^ U s u #.q.D.T.W.W.W.W.W.W.W.W.W.W.W.E.E.E.W.T.P.S.<X5 5 ) ,.e.S.P.P.P.U.U.I.U.I.I.I.I.I.P.P.P.P.P.P.G.P.P.P.P.G.G.G.D.C.r.9X 8 R z ,.q.C.S.S.S.S.S.S.a UXUXUX",
"UXUXx W.Q.Q._.:X:X:X:X:X:X:X;XJXH 7 8 7 8 8 7 8 7 I qXD a.M.|.#X>X:X-X-X-X-X-X:X-X-X-X-X:X-X-X:X=X*X|.GXI 7 5 7 5 7 5 5 7 5 7 7 7 U iXB.|.#X@X+X+X+X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.].E ` S >.g.G.U.tX X .q j ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.yX# .c ,.V.P.}.P | p h =.e.G.T.W.W.Q.W.W.W.W.W.E.W.E.E.E.E.E.T.I.S.B.! o x.&.9.Z.P.U.U.U.P.I.P.P.I.P.P.P.P.P.P.P.P.P.P.G.G.G.G.G.G.G.D.S.e.rXX 5 ( j =.q.V.Z.S.S.S.G.S.a X UXUXUX",
"UXUXv Q.Q.Q.).:X:X:X:X:X:X-X>XPXG 7 7 8 7 7 8 7 7 _ X.D a.N.|.&X=X-X:X-X-X-X-X-X-X-X-X-X:X+X:X+X-X*X%XlXX.7 5 7 7 5 7 7 7 5 7 5 5 8 HXm.]..X@X-X+XoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.L... Y S =.e.H.Y.pX 4 ] e x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.4X4 ` N 1.V.G.{.G +.w k ,.C.P.T.W.W.W.W.W.E.E.W.E.E.E.W.E.E.W.T.U.G.g.0XX U p.6.V.H.P.U.I.P.I.I.I.P.I.P.P.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.S.g.8X$ 4 ) h =.9.V.Z.S.S.S.D.S.l UXUXUX",
"UXUXv Q.Q.Q._.:X:X-X:X:X:X:X;XLX8 7 8 7 8 7 7 7 7 X...D m.{.$X*X:X-X-X-X-X:X-X-X-X-X:X-X+X:X+X:X-X*X%X}.HX7 7 7 7 7 5 7 5 7 5 7 7 5 c.4X'.|.*X*X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.H.eX T S =.w.G.K.z. 7 E t @.0.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.7X8 W S >.w.G.kX8 # | e x 6.Z.I.E.W.W.W.W.W.W.W.E.W.E.E.E.E.E.T.E.T.P.C.<X7 4 k.>.w.Z.G.I.P.U.I.I.I.I.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.D.S.V.1X7 $ [ h #.9.g.Z.S.S.S.D.F.a UXUXUX",
"UXUXv Q.Q.Q.).:X:X:X:X:X:X-X;XKX8 7 8 7 7 8 7 8 7 c.) p.m.{.$X*X-X-X-X-X-X-X-X-X-X-X-X-X-X-X:X+X-X=X#X|.gXI 5 5 5 7 5 7 5 7 5 5 5 5 I iXn.}..X).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.rXX H A #.q.D.[.^ J P y $.w.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.{.H T S $.w.S.7X7 4 ! y @.9.Z.U.E.W.W.W.W.W.W.E.W.E.E.E.E.E.E.T.E.T.I.S.B.! o x.#.9.C.G.P.U.P.I.P.P.P.P.P.P.P.P.P.G.G.G.P.G.G.G.G.D.G.G.S.S.C.m.G # | a *.7.g.C.S.Z.S.D.S.j o UXUXUX",
"UXUXv Q.Q.Q.oX:X:X:X:X-X:X-XbXHX7 8 7 7 7 7 7 7 9 SXQ s.B.}.#X*X:X-X:X-X-X-X:X-X-X-X-X-X-X-X+X-X-X-X*X.XlXo.7 7 7 5 7 5 7 5 5 7 5 7 9 FXm.{.R.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.4X4 G D @.q.S.].E I B h >.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.].^ H D #.q.S.5X5 8 R u #.w.D.T.E.W.W.W.E.E.E.E.E.W.E.E.E.E.E.E.T.T.U.G.g.rXX I p.6.g.S.P.I.P.I.P.I.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.D.G.G.S.C.B.E X .u @.6.e.C.Z.Z.S.S.S.a o UXUXUX",
"UXUXv Q.Q.Q.).:X:X:X:X-X:X-XcXHX7 7 7 7 7 7 7 8 7 FXA s.M.|.#X=X-X-X:X-X-X-X-X-X-X-X-X-X-X-X+X-X-X-X=X#X}.HX7 7 7 5 5 7 5 7 5 7 5 5 7 c.4Xv.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.5X5 8 Q x 7.S.{.P ' g k ,.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.K.z. G D v q.Z.4X4 J A a =.e.G.T.E.E.W.E.W.E.E.E.E.E.E.E.E.T.E.T.T.T.U.P.Z.j.7 5 k.:.w.S.G.P.I.P.P.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.D.D.D.D.S.S.Z.v.[ o +.y @.6.w.C.Z.S.S.S.S.a UXUXUX",
"UXUXv W.Q.Q.).:X-X-X:X:X:X-XcXDX7 8 7 8 8 7 7 7 8 FXD a.M.|.#X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X=X,X|.fXH 7 5 5 7 5 5 7 5 5 7 7 5 I 8X6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.3X8 7 Q x 7.Z.{.P O.r z 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.H.rX 9 Q n 7.C.8X4 I B j =.g.G.T.E.W.W.W.E.W.E.W.E.E.E.T.E.E.T.T.T.T.T.P.S.B.] o c.&.7.V.D.P.P.P.P.P.P.G.P.G.P.G.P.G.G.G.G.D.G.G.D.G.D.S.G.S.C.v.z. 9Xt x ,.w.V.Z.Z.Z.S.F.f X UXUXUX",
"UXUXv W.Q.Q.oX:X:X-X:X-X:X-XcXSX7 9 7 7 7 7 7 7 8 FXF a.N.|.*X=X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XOX-X-X*X XlXO.7 7 5 5 5 7 5 7 5 5 5 5 5 0X1.V.P.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.kXG 5 Q x 7.C.{.H +.t v 7.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.tX 8 R v 7.C.<X$ T B j ,.g.P.T.E.E.W.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.U.U.D.e.rXX I p.<.e.S.G.P.P.G.P.P.P.G.P.G.G.G.P.G.G.G.G.G.D.D.D.D.D.D.S.S.b.9X c.t x ,.w.C.Z.Z.Z.S.S.a o UXUXUX",
"UXUXv W.Q.Q.).-X:X-X-X:X-X-XnXtX7 7 9 9 7 7 7 7 G SXD a.{. X;X-X-X-X-X-X-X-X-X-X+X-X-X+X+X-X+X+X-X-XOX=X#X}.DX7 5 5 7 5 7 5 5 5 5 5 5 ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.{.J 5 ^ x 6.V.{.G qXy @.9.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.tXo 7 Q x 7.C.8X$ ! B z <.C.P.T.W.W.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.G.C.<X7 5 k.:.q.Z.G.P.P.P.P.G.G.P.G.P.G.G.G.G.G.D.D.D.D.D.D.D.D.S.S.Z.V.0X +.y z ,.w.g.Z.Z.Z.S.S.a UXUXUX",
"UX v !.Q.Q.oX-X-X:X-X:X:X>XnXtX7 9 7 7 7 9 7 7 G SXD m.{. X*X-X-X-X-X+X-X-X-X-X:X+X-X-X-X-X+X-XOXOX-X=X,X XsXI 5 7 5 7 5 5 5 5 7 5 7 k.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.{.L 5 ^ z 6.V.kXG o O.y #.q.D.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.iXX 7 Q k 6.V.8X# ~ g x 6.Z.P.T.W.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.U.U.G.S.B.~ x.%.7.V.S.G.P.P.P.P.P.P.G.G.G.G.G.G.D.G.G.D.D.D.D.D.S.S.S.Z.V.tX o.i z >.w.g.Z.Z.Z.Z.S.f o UXUXUX",
"UXo v W.Q.Q.).:X:X:X-X-X-X>XnXwX7 7 7 7 7 7 7 7 H AXD B.{.%X*X-X-X-X-X+X-X-X-X+X-X+X+X-X-X+X+X:X-X-X-XOX*X%XlXo.5 7 5 5 5 5 7 5 5 X o pX1.e.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.}.U 5 ( x 6.g.N.8 X o.u $.w.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.8X# 5 ( x <.V.8X# ` g x 6.Z.I.T.E.E.W.E.E.E.E.E.T.E.T.T.T.T.T.T.T.T.U.T.P.D.e.0XX I p.,.e.S.G.P.G.G.P.G.G.G.G.G.D.G.D.G.D.D.D.D.D.S.D.S.S.S.S.e.rXX o.i z =.9.g.C.Z.Z.S.F.f UXUXUX",
"UXo v Q.Q.Q.).:X:X-X-X:X-X*XnXwX7 7 7 7 7 7 7 7 I 0XD m.{..X=X=X-X-X-X-X-X+X+X-X+X-X+X-X+X-X+X+X+X+X+X-X@X.X}.HX7 5 5 5 5 5 5 5 # ! u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.[.E 5 ^ k <.V.3X8 # .u $.w.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.aX# 5 ( k <.g.8X# { g v 7.Z.I.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.P.G.V.<X7 5 k.:.q.C.D.P.G.P.G.G.G.G.G.G.G.D.G.D.D.D.S.D.D.S.S.D.S.S.Z.V.rXX o.i k >.9.V.Z.Z.Z.Z.S.a UXUXUX",
"UX v W.Q.Q.).-X-X:X:X-X-X;XnXeX7 7 7 7 7 7 7 7 J wXp.m.{.#X>X=X+X-X-X-X-X-X-X-X-X-X-X+X+X+X-X+X+X+X+X+X-X,X XfXI 5 5 5 5 5 5 $ 7 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.[.E 4 ( k ,.e.N.8 X .h $.e.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.8X# 5 Q x 6.e.8X# { g v 7.Z.I.T.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.U.T.U.P.P.Z.d.~ x.%.7.g.S.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.V.rXX X.i k >.9.g.C.C.Z.Z.S.u o UXUXUX",
"UX v W.Q.Q.oX-X:X-X:X-X-X>XzXAX7 7 7 7 7 7 7 7 G AXp.B.}.%X*X+X-X-X-X-X-X+X-X+X+X-X+X-X+X:X-X+X-X+X-X+X+X@X%XlXo.5 5 5 5 5 $ X pX1.V.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.}.P 5 ( k ,.V.3X8 X +.h =.e.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.iX# 7 E k <.V.8X# ] N @.9.Z.U.T.E.E.E.E.E.T.E.T.T.T.U.U.T.T.U.U.U.U.U.U.U.P.S.e.rXX L p.,.w.S.G.G.G.G.G.G.G.D.D.G.G.S.D.D.D.D.D.S.S.S.S.S.S.Z.V.tX O.r j =.9.g.C.C.C.Z.Z.a UXUXUX",
"UX v Q.Q.Q.oX-X-X:X+X:X-X*XnXSX7 7 7 7 7 7 7 7 G SXp.B.].%X>X+X-X+X-X-X-X-X-X+X-X+X-X+X-X+X+X+X-X+X+X+X+X@X#X}.HX7 5 5 5 4 ! u.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.}.K 5 ^ k <.e.N.G c.h >.e.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.yXX 7 Q k <.e.8X$ ! B @.7.S.P.T.E.E.E.T.T.T.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.D.V.<X7 5 ) =.9.C.S.G.G.G.G.G.D.G.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.V.rX O.r k =.q.g.C.C.Z.Z.S.a o UXUXUX",
"UX n Q.Q.Q.oX-X:X-X-X-X-X=XcXSX7 7 7 7 7 7 7 7 8 DXp.f.}.%X*X-X-X-X-X-X-X+X+X-X+X+X:X+X+X+X-X+X+X-X+X+X+XOXXX XfXI 5 5 5 o 7 k.6.C.I.E.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.}.G 5 ( j <.e.{.G c.h =.e.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.uXo 8 R k ,.e.8X$ Y B @.7.S.U.T.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.U.P.G.g.y./ o x.%.6.e.S.D.G.G.G.D.D.D.G.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.Z.V.0X +.t j =.9.g.C.C.C.Z.Z.f UXUXUX",
"UXo v Q.Q.Q.).-X-X-X-X-X:X=XcXSX7 7 5 7 5 7 7 7 7 FXp.B.].%XOX-X-XOX-XOX-X+X-X+X+X-X+X+X+X-X+X+X+X+X+X+X+X-X,X%XlXO.5 5 X o 9X1.e.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.kX8 7 Q k ,.g.N.J +.h =.e.P.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.yX 8 Q z ,.e.<X$ T S v 7.Z.P.T.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.U.I.I.P.F.g.x.X L p.,.w.Z.S.G.G.D.D.G.D.S.D.G.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.A.x. qXr k =.q.g.g.C.C.Z.Z.f o UXUXUX",
"UX v W.Q.Q.).-X:X-X-X:X-X>XcXSX7 7 7 7 7 5 7 7 7 FXF m.].#X*X-X-X+X-X+X+X-X+X+X+X+X-X-X-X+X+X+X+X+X+X+X+XOX@X.X}.HX5 # ! u.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.3X7 9 R k ,.g.{.L | N =.e.G.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.`.0X 8 A k <.g.8X4 K S v 7.Z.P.U.E.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.P.U.I.U.U.P.D.g.4X9 4 } $.9.C.S.D.G.G.G.D.G.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.S.C.v.z. 9Xq j =.9.g.g.g.Z.Z.Z.f UXUXUX",
"UX n W.Q.W.).-X-X-X-X-X-X=X$XHX5 7 7 7 7 7 7 5 7 SXp.m.{.%X@X=X+X-X+X-X-X+X+X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+XOX,X XgXG 5 l.7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.6X5 G A k <.e.'.E W S =.w.G.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.R.z. J A z ,.e.4X4 8 Q x 6.Z.P.U.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.U.P.U.U.P.U.P.G.g.d.~ +.%.6.e.Z.D.D.D.S.D.S.S.G.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.C.n.` X O.e k =.9.g.g.C.C.Z.Z.h UXUXUX",
"UXo n Q.Q.Q.).-X-X-X-X-X-X=X&XKX7 5 7 5 5 7 7 7 5 ZXh.f.{..X*XOX-X+X-X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X,X XkXE X 0X1.g.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.8X$ J A k <.V.'.^ H D $.w.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W. X^ I Z x 6.g.2X7 5 ) x 6.C.P.U.T.T.T.U.T.U.T.U.U.U.U.U.I.U.I.U.P.U.P.U.P.P.P.G.S.w.rXX L p.>.q.Z.S.D.D.D.S.G.D.D.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.C.M.L # | q k =.9.e.g.C.C.Z.Z.u UXUXUX",
"UX @.W.Q.Q.).-X-X-X-X-X-X=X#XKX7 7 7 7 7 7 5 5 7 | k.f.].%X*XOX+X-X+X-X+X+X+X-X-X+X+X+X+X+X+X+X+X+X+X+XOXOX+X@X.XJ.wXo W u.q.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.uXo L Z z <.V.L.} 7 Q #.w.H.U.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.|.L U B x ,.g.7X8 $ } k 6.V.G.U.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.P.U.P.U.P.U.U.P.G.D.g.<X9 4 } $.9.V.S.S.S.G.S.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.C.7X9 $ ` e z =.9.g.g.C.C.C.C.u o UXUXUX",
"UX v W.Q.Q.).-X-X-X-X-X-X=X,XPX8 5 7 5 5 7 5 7 5 Y pXd.{..X,X-X+X+X-X+X-X+X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+X+XOX(.S.<X5 5 k.6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.`.rX U N z 6.V.L.z. 4 ) #.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 _ g x 6.g.7XV X O.k ,.V.G.U.U.T.T.U.T.T.U.U.U.U.U.U.I.U.I.U.P.U.P.P.P.P.P.P.D.V.d.` x.m 6.e.Z.S.D.S.D.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.<X5 4 ~ e k >.9.e.A.C.V.C.Z.u UXUXUX",
"UXo v W.Q.Q.).-X-X-X-X-X-X=X,XPXG 7 5 7 7 5 7 7 7 I rXa.n.|.,X=X-X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXoXE.P.M.E X 0X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.R... ~ B x 6.C.F.0X # .v 9.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.5X4 { g x 6.g.N.H O.k ,.e.H.U.U.U.U.T.U.U.U.U.U.U.U.I.U.I.I.P.U.P.U.U.P.U.P.P.G.S.w.0XX L p.:.q.C.S.S.G.D.S.S.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.V.8X$ 5 E e z >.9.e.V.g.C.C.A.u o UXUXUX",
"UX x Q.Q.Q.).-X-X-X-X-X-X=X,XjXH 7 5 7 7 5 5 5 5 G tXa.n.|.,X=X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXQ.W.I.A.rXo W u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W. XU { g x 7.Z.S.uXo x.n 6.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.iXX O.i x 6.V.'.E ] M =.w.S.I.U.U.T.U.U.U.U.U.U.U.U.I.I.I.U.I.I.I.I.I.P.P.P.P.G.S.g.1X7 4 } $.7.g.Z.S.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.g.rXX 7 R t x >.9.g.g.g.g.C.C.f o UXUXUX",
"UX v W.Q.Q.).-X-X-X-X-X+X-X*XjXI 5 7 5 7 5 7 7 7 7 DXs.M.[.,X*X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOX+X+X/.Q.W.T.H.<X5 5 k.6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 +.y v 7.Z.G.8X# W F <.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.`.0X X O.t v 7.V.L./ H D #.q.S.P.U.U.U.U.U.U.U.U.P.U.P.U.I.U.P.I.I.P.I.P.I.P.P.P.P.S.V.d.` o O.m 6.w.C.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.v.z. G P t z >.9.w.g.g.Z.C.C.y UXUXUX",
"UXo v Q.Q.Q.).-X-X-X-X-X-X-X*XmX! 7 5 7 5 5 7 5 5 5 +.j.B.}.#XOX+X+X+X+X+X+X+X+X+X+X+X+XOX+X+XOXOX+X+XOXOX).Q.Q.W.E.G.M.! o 9X2.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.aX$ X O.y @.q.S.H.4X4 8 Q ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ # { y #.9.C.J.z. 5 ) @.7.Z.P.U.U.U.U.U.U.U.I.U.U.I.U.I.I.I.I.P.I.P.P.P.P.P.P.G.G.Z.q.0XX I D :.q.V.Z.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.M.P I B t x ,.q.g.g.g.Z.C.C.f o UXUXUX",
"UX x Q.Q.Q.).-X-X-XOX-X-X-X-XxX{ 5 7 5 5 7 5 5 5 7 ! 8XB.]..X*X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+XOXOXoXQ.Q.Q.Q.E.I.A.0Xo Y u.9.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.yX $ | y #.q.S.G.5X5 4 z.#.w.H.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kX8 4 ^ y #.q.Z.Z.tX X x.x 6.C.G.U.U.U.U.U.I.U.U.I.U.I.I.I.P.I.P.I.P.P.P.I.P.P.G.P.G.S.e.1X8 4 k.#.7.g.Z.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.V.2X5 _ p y x ,.9.g.g.g.g.C.C.y UXUXUX",
"UXo n Q.Q.Q.).-X-X-X-X-X-X-X,XzXx.5 7 7 7 5 5 5 5 7 J tXd.]. X@X+X+X+X+X+X+X+XOX+X+XOX+X+X+XOX+X+XOXOXOX!.Q.Q.Q.Q.W.T.D.<X5 5 k.8.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q..X/ 4 ~ u #.w.D.P.kXV o c.*.q.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ 7 R u #.q.Z.S.yXX ..M ,.V.G.I.U.U.U.U.U.I.I.I.I.P.I.I.I.I.I.P.P.P.P.P.P.G.P.G.G.S.V.d.` O.m ,.w.V.S.S.S.Z.Z.S.Z.Z.Z.Z.C.Z.C.Z.C.C.C.V.yX# | w u x ,.9.g.g.g.g.C.C.f UXUXUX",
"UX v W.Q.Q.).OX-X-XOX-XOX-X*XcXSX5 5 5 5 5 7 7 5 5 7 FXa.n. X*X+X+X+X+X+X+X+X+XOXOX+XOXOX+X+XOXOX+X+X).Q.Q.Q.Q.Q.W.E.G.M.U X 0X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.kXV 7 R h =.e.G.I.].U ! u.7.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.`.rX H Z h =.w.S.D.8X$ L D >.w.D.P.I.U.U.P.I.U.I.I.U.P.I.I.P.I.P.P.P.P.P.P.G.P.P.P.G.S.C.r.0XX I F :.q.g.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.V.A.0X +.q u @.<.q.g.g.g.Z.V.C.f UXUXUX",
"UXo v W.Q.Q.).-XOX-X-X+X-XOX*X%XKX7 5 7 5 7 5 5 7 5 5 qX1Xn. X#X@X+X+X+X+X+X+XOX+XOXOX+X+XOXOXOXOXOXOXQ.Q.Q.Q.Q.Q.Q.E.U.A.rXo Y u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.hX4 J Z h :.V.H.U.K... 5 k.<.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W. X! W B h >.e.S.G.2X5 7 ) =.q.g.P.U.U.U.I.U.I.U.I.P.U.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.D.S.w.<X9 4 z.#.6.e.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.n.E # | q a @.6.q.g.g.g.g.V.C.f o UXUXUX",
"UX n W.Q.Q.).-XOX-X-XOX-X-X=X.XGX8 5 5 5 5 5 5 5 5 5 Y yXB.]..X@X+X+X+X+XOXOX+XOX+X+X+XOXOX+XOXOXOX!.Q.Q.Q.Q.Q.Q.Q.~.T.S.<X7 5 k.6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.~.0X W B j ,.V.G.U.H.rX o 9X1.b.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.6X5 | r j ,.g.S.H.{.J X 9X*.7.g.U.I.U.P.U.I.I.P.I.I.P.P.P.P.I.P.G.P.P.P.G.P.G.P.G.G.G.S.g.d./ O.n ,.q.V.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.<X5 5 ! w a #.6.w.g.g.g.Z.V.V.f UXUXUX",
"UX v W.Q.Q.).-X+X-X+X+X+X-X@X#XgXH 5 5 5 5 5 5 5 5 5 8 DXf.{..X@X+X+X+XOXOX+XOX+XOX+X+XOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.! o x.1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.|.L | p z <.C.I.U.I.yX# U s.9.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.~.yXo o +.e k ,.V.G.G.'.! Y u.<.V.G.P.U.U.I.I.I.I.I.P.I.I.P.P.P.P.P.P.P.P.G.G.G.G.G.G.G.S.C.q.pXX L D =.9.V.C.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.C.V.V.0XX 8 K e h $.6.w.e.V.e.V.V.V.y o UXUXUX",
"UXo v W.Q.Q.).OX-X+X+X-X+X+XOX,XmXY 5 7 5 7 5 5 5 5 5 5 9X1X'. X,XOXOX+X+X+X+XOXOXOXOXOXOXOXOXOXOXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.rXX W u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX4 o +.t x 6.Z.I.E.U.4X5 5 k.6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.Q.|.E $ [ e x 6.C.G.P.L.z. 5 ) >.q.S.G.I.I.I.I.P.I.P.I.P.P.P.P.P.P.G.G.G.G.G.G.P.G.G.G.G.S.Z.e.j.8 4 } #.6.w.C.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.V.M.U L s e k =.7.w.e.e.V.V.C.V.f UXUXUX",
"UX @.Q.Q.Q.).OX+X-X+X-X+X+X+X,XxX .5 5 5 5 5 5 5 5 5 5 T yXn.[..X@X+X+X+XOXOX+XOXOXOXOXOXOXOXOX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X5 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.pX $ [ t v 7.S.U.E.U.{.G o 9X1.b.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.E.hX4 7 R y @.7.Z.P.P.S.rXo o x.%.q.C.G.P.I.I.I.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.G.G.H.Z.V.d.` O.b ,.q.V.C.C.Z.Z.C.C.C.C.C.V.C.C.V.V.4X5 _ s t k :.7.w.e.e.e.V.V.V.y UXUXUX",
"UX n Q.Q.Q.).-X+X-X+X+X-X+X-X,XzXSX5 5 5 5 5 5 5 5 5 5 7 DXf.]..X@X+X+XOX+XOXOXOXOXOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.M.! o 9X1.V.G.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.}.J 7 E y #.q.S.U.W.U.].~ K h.9.S.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.Q.^.0X I C y #.9.S.P.I.S.8X4 T u.<.V.G.G.I.I.P.I.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.S.G.Z.C.7.pX# L p.$.7.e.C.C.C.C.C.C.C.C.C.C.V.C.V.b.0X +.> y x >.9.w.e.V.e.V.V.V.f o UXUXUX",
"UXo x Q.Q.Q.).+X+X+X+X+X-X+X+X@X%XHX7 5 5 5 5 5 5 5 5 5 5 +.2Xn..X@X@XOXOXOXOXOXOXOXOXOXOXOXOX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.A.tXo W u.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX$ H Z h $.w.H.E.E.E.H.0X # 9X6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.6Xd ' p a #.q.S.I.I.G.2X9 5 z.:.w.Z.G.P.I.P.P.P.P.P.P.P.G.P.P.P.G.G.G.G.G.G.G.D.G.G.D.D.S.Z.w.j.8 4 } @.6.w.V.C.Z.C.C.C.C.C.V.V.C.V.V.7XL $ { > y v ,.q.w.e.e.e.V.V.V.y UXUXUX",
"UX v W.Q.Q.).+X-X+X-X+X+X+X+X*X.XfXG 5 5 5 5 5 5 5 5 4 5 J uXn.[..X@XOXOXOXOXOXOXOXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.<X7 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.%X~ ` p h >.V.P.E.W.E.G.yX# o ! i.b.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.`.yXX o x.q j >.e.D.I.I.G.M.P .4.9.C.G.P.I.P.I.P.P.P.P.P.P.G.G.G.G.G.G.G.G.G.D.G.D.D.G.D.S.Z.e.d.[ O.M >.q.g.V.C.C.C.C.V.C.C.C.V.V.V.yX# 7 P q h @.,.q.q.e.e.e.V.V.V.f o UXUXUX",
"UX v Q.Q.Q.).+X+X+X+X+X+X+X+X@X#XmXT 5 5 5 5 5 5 4 5 4 5 5 AX2X]. X@XOXOXOXOXOXOXOXOXOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.n.! o 9X1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.aX4 o +.w k ,.V.P.E.Q.E.I.4X7 4 pX6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.kXJ 4 ~ q k ,.g.G.U.I.P.J. . 7 l.,.V.Z.G.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.G.G.D.D.D.S.G.S.S.V.9.0X# H D $.7.e.V.C.C.C.C.C.V.V.V.C.g.M.E H C q h #.<.q.w.e.e.e.V.V.V.y UXUXUX",
"UX x Q.Q.Q.).+X+X+X+X+X+X+X+X@X.XxX{ 5 5 5 5 5 5 5 5 5 5 4 T iXn.|.XX@XOXOXOXOXOXoXOXOXOX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.A.0XX Y u.q.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q..Xz. $ [ e x 6.Z.U.W.W.W.U.'.U ` i.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.`.iXX J Z t x 6.C.P.I.U.P.C.rXX X 9X;.q.Z.G.P.P.P.G.P.P.G.G.P.G.G.P.G.G.G.G.G.D.D.D.D.G.S.S.S.Z.C.w.j.9 4 } @.<.q.V.V.C.V.C.V.V.C.V.V.V.8X4 ` 3 e j $.6.q.w.e.e.e.e.b.V.f UXUXUX",
"UX n Q.Q.Q.).+X+X+X+X+X+X+X+XOX,X|.DX5 5 5 4 5 5 5 4 5 5 5 5 SXM.]..X@XOXOXOXOXoXOXOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.S.<X7 5 k.6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.6X5 8 P y @.9.S.U.W.W.W.T.F.9X 4 pXq.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.Q.W.W.W.W.W.E.kXG _ s u #.9.C.P.I.U.P.S.<X5 G h.6.V.S.G.P.P.G.P.G.G.P.G.G.G.G.D.G.D.G.D.G.S.D.S.D.S.D.S.S.Z.e.d.[ o.m >.9.g.g.C.C.C.V.C.V.C.g.n./ X o.: t k =.6.q.e.w.b.e.e.V.b.u UXUXUX",
"UXo v Q.Q.Q._.OX+X+X+X+X+X+X+XOX@X.XGX8 5 5 5 5 4 5 4 5 5 4 4 T iX'. X@XOXoXOXOXOXOXOXoX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.! o x.1.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.^.pX W B u $.w.H.T.W.Q.W.E.H.yX# U f.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.^.pXo X O., a $.q.S.P.U.U.I.S.M.H X 9X5.e.Z.G.G.G.P.P.G.P.G.G.G.G.G.G.G.G.S.G.D.G.S.D.D.D.S.S.S.Z.V.7.0X# L D $.7.w.A.g.C.V.V.g.V.V.g.8X5 5 ! > y x ,.7.w.w.w.e.e.V.V.V.y o UXUXUX",
"UX v Q.Q.Q.).+X+X+X+X+X+X+X+XOXOX.XgXL 5 4 5 5 5 5 5 4 4 5 5 5 SXM.[..X@XOXoXOXOXOXOX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.A.rXX Y s.q.D.U.W.Q.Q.Q.Q.Q.Q.Q.hX7 O.w h >.V.G.E.W.Q.Q.E.P.2X9 $ 0X0.S.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.W.E.hX7 5 ! q j >.e.D.I.U.T.P.S.v... G l.7.V.S.G.P.P.G.G.G.G.G.G.G.G.S.G.D.G.D.G.S.D.D.S.S.S.S.S.Z.V.w.j.8 4 } @.,.q.g.V.C.C.V.V.V.V.M.` H V q a v ,.7.q.e.e.w.e.e.b.V.y UXUXUX",
"UX x W.Q.Q._.+XOX+X+XOX+X+XOXOX@X.XxX .5 5 4 5 4 4 5 5 5 4 5 4 I iX]. XXX@XOXOXOXOXoX!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.<X5 5 k.<.Z.Y.E.Q.Q.Q.Q.Q.W.$X[ 4 ` q z <.V.U.E.Q.Q.Q.E.I.].` H 1XC.G.~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.E.|.} I C e x <.g.G.I.U.U.I.G.C.rXX X x.5.q.C.G.G.G.P.G.G.G.G.G.G.G.G.G.S.G.S.S.D.D.S.S.S.S.S.S.Z.Z.w.d.[ O.b =.9.g.g.g.V.V.V.V.V.yX$ { 3 q h #.,.q.w.w.w.e.e.e.e.b.f UXUXUX",
"UXo v W.W.W.).OX+X+X+X+XOX+X+XOX=X,X|.DX5 5 5 4 5 4 5 4 5 4 4 5 5 wX7X[..X@XoXOXOXoX).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.P.n.! o 9X>.V.G.E.W.Q.Q.Q.Q.!.iX$ G P t v 7.Z.U.W.!.Q.Q.W.U.F.rXX o .B.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.E.W.E.W.(.yX# O.< u @.7.C.G.I.T.U.I.G.Z.<X5 9 k.6.V.S.G.G.G.G.G.D.G.G.G.S.G.S.D.S.G.S.D.S.S.S.S.S.S.S.Z.Z.e.7.0X# K D #.7.e.g.g.V.V.V.V.2XK X o.* e k =.6.q.w.w.e.w.e.e.e.V.y UXUXUX",
"UX v W.Q.Q.).+X+XOXOX+X+XOXOX+XOXXX.XGXV 5 4 5 4 5 4 5 4 5 5 4 4 G DX'. XXX@XOXOXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.0XX U s.9.S.T.W.Q.Q.Q.Q.kXK { p u #.q.D.T.W.Q.Q.Q.W.E.D.4X5 4 0XV.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.W.W.W.E.E.T.6X8 4 [ q a $.q.Z.P.I.U.U.I.P.S.M.U { i.q.C.S.G.G.G.G.G.G.D.D.G.D.G.S.G.S.S.S.S.S.S.S.S.S.S.Z.Z.V.q.j.8 4 } x ,.9.g.g.V.V.g.v.rXX 8 U > y x =.7.q.q.w.w.w.w.e.V.e.y UXUXUX",
"UX n Q.Q.Q.).OX+X+XOX+XOXOX+XOXOX@X.X6X] 5 4 4 5 4 5 4 5 5 4 4 4 4 ' hX[..X@XoXOX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.U.D.<X7 5 k.6.C.I.W.Q.Q.Q.XX0XX # o.q h >.e.P.E.W.Q.Q.Q.Q.E.P.M.E J <XZ.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.W.W.}.[ H Z q z ,.g.D.P.U.I.U.I.P.D.r.0Xo $ 9X2.e.Z.S.G.G.G.D.G.G.D.S.G.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.V.q.d.[ O.M =.7.e.g.V.V.b.4X7 ! s , u x ,.7.q.w.w.w.w.w.e.e.b.f UXUXUX",
"UXo v Q.Q.Q._.OXOX+X+XOX+XOXOX+XOX@X#X}.SX5 5 5 4 5 4 5 4 4 4 5 4 5 5 AX3X[.XXXXoXQ.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.~ 9X1.V.H.E.W.Q.~.aX4 8 P e k 6.C.P.E.Q.Q.Q.Q.W.W.U.F.rXX [ m.S.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.Q.W.W.W.W.E.W.W.W.E.E..Xx.X X.< y x 6.g.D.I.I.U.I.U.I.H.V.<X4 8 <X9.V.S.S.G.G.G.S.D.D.D.D.S.D.D.S.S.S.S.S.Z.S.S.S.Z.Z.Z.C.e.6.pX# K D *.6.w.g.g.g.2XW X O.* q h #.,.7.q.w.q.w.w.e.w.e.b.f UXUXUX",
"UXo v W.Q.Q./.+XOX+XOXOXOX+XOXOXOX@X@X XGX8 4 4 4 5 5 4 4 5 4 5 5 4 4 G GX]..XXX(.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.yXX T s.q.F.U.W.W.6XJ ] s t v 7.S.U.W.Q.Q.Q.Q.Q.W.T.D.4X7 X z.n.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.E.W.E.W.E.^.yX$ 5 ~ , u #.q.Z.G.P.U.I.I.I.I.G.Z.m.L ` a.w.C.Z.H.G.D.D.D.D.S.D.S.D.S.S.S.S.S.Z.S.Z.S.S.Z.Z.Z.C.g.q.j.8 4 } x ,.9.e.e.n.z.X 5 W : e k $.6.9.q.q.q.w.w.w.e.e.e.y UXUXUX",
"UX v Q.Q.Q._.+X+X+XOX+XOXOXOXOXOXOX@X.X6XW 5 5 5 4 4 4 4 4 4 4 4 4 4 4 Y iX[..XE.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.<X7 5 k.6.C.I.E.|... # .> h =.w.H.E.W.Q.Q.Q.Q.Q.W.T.P.n.[ $ 0X'.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.E.E.E.W.`.aX5 I s w k >.w.S.P.U.I.U.I.I.I.G.S.y.9X # x.t.e.Z.S.D.D.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.g.e.d.[ .b $.7.w.b.yX4 Y s > y x :.6.q.q.q.w.q.w.w.e.e.b.y o UXUXUX",
"UX v Q.Q.Q._.+XOXOXOXOXOXOXOXOXOXOX@X.X}.SX5 4 4 4 4 5 5 4 5 4 4 4 4 4 4 | hXK.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.G.n.! o 9X1.e.G.R.rX# 8 P q k ,.V.P.E.W.Q.Q.Q.Q.Q.Q.E.U.Z.rX# 4 0XL.P.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.W.W.E.W.`.aXV X O.> t x 6.V.S.P.I.I.I.I.I.I.P.S.e.<X4 4 pX0.e.Z.S.D.D.D.D.S.D.S.S.S.S.Z.S.Z.Z.S.S.Z.Z.Z.Z.Z.C.g.e.6.x.# H D *.6.0.8Xd X .; q h @.,.7.q.q.q.q.q.w.w.w.e.b.y UXUXUX",
"UXo v Q.Q.Q._.OX+XOXOXOXOXOXOXOXOXOX@X.X[.GXV 4 5 4 4 5 4 4 4 4 4 4 4 4 4 5 9X7XH.E.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.0XX U u.q.L.iX$ ` 3 t n 7.Z.U.W.W.Q.Q.Q.Q.Q.Q.W.T.S.2XG 5 yXL.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.E.W.W.W.W.E.E.E.E.T.hXG 7 U > a #.9.C.G.I.U.I.I.I.I.I.P.D.V.m.U 9 8Xr.V.S.S.S.S.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.g.9.j.d 4 } x ,.<XL 7 U * e h $.<.9.q.q.q.q.q.q.w.w.w.V.y UXUXUX",
"UX x Q.Q.Q._.+XOXOXOXOXOXOXOXOXOXOXoXXX.X6X[ 5 4 5 4 4 5 4 4 4 4 4 4 4 4 4 $ .M.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.H.<X7 5 k.8.iX5 $ | > h =.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.T.P.b.x. 4 0X].U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.E.W.E.W.E.W.`.hXJ { 3 q k >.w.S.P.I.I.I.I.I.I.P.P.G.Z.r.0XX G 8Xq.V.Z.S.S.S.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.g.w.i.[ O.M j.! ] 3 > y x =.6.7.q.q.q.q.q.q.w.w.e.e.f UXUXUX",
"UXo v W.Q.Q._.+XOXOXOXOXOXOXOXoXOXOXOXXX.X{.DX5 4 4 4 4 4 4 4 4 4 4 4 5 4 4 o X z.N.G.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.~ o x.pX7 H C q k ,.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.<X7 $ 0X{.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.Q.W.W.W.W.W.W.W.E.E.E.W.^.iX7 4 ` : t v 6.V.D.P.I.I.P.I.I.P.P.P.G.Z.w.<X7 J 8Xw.C.Z.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.g.e.6.0X# K z.] # | & q f v ,.7.q.q.q.q.q.q.q.w.w.e.w.y UXUXUX",
"UXo v Q.Q.Q._.OXOXOXOXOXOXOXOXOX@X+XOXoXXX[.sXI 4 5 4 4 4 4 4 4 4 4 4 4 4 # # .3XP.`.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX I 7 o O.< t v 7.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.G.n.[ # [ 5XY.T.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.E.W.W.W.E.W.E.E.|.rX4 Y s , h #.9.Z.G.P.I.I.I.I.I.P.P.P.P.S.V.t.| H 8Xr.C.Z.Z.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.Z.g.e.9.j.9 4 Y o H K * e j #.,.7.q.7.q.9.q.q.q.q.w.w.e.y UXUXUX",
"UX v W.Q.Q._.OXOXOXOXoXOXOXoXOXOXoX+XoXXX X{.eX4 4 4 4 4 4 4 4 4 4 4 4 4 o . [ 5XP.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.<X7 X 8 E > h =.w.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.g.8X4 o J yX[.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.`.6X..# $ | ; e k ,.w.S.G.I.P.I.I.P.P.P.P.P.P.G.C.q.8X$ 8 0Xv.V.C.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.g.g.q.i.} X X o.- > y x >.6.7.q.q.q.q.q.q.q.q.q.w.b.y UXUXUX",
"UX v W.Q.Q._.OXoXOXOXoXOXOXOXoXOXOXOXOXoX.X[.fXG 4 4 4 4 4 4 4 4 4 4 $ $ o T aXH.E.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.n.~ | 3 e z <.V.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.D.B.] $ z.5XR.E.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.W.E.E.E.|.iX8 I V > u @.7.C.S.P.I.I.I.P.P.P.P.P.P.G.G.S.e.f.! 5 9XB.V.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.V.g.w.<.x.# 8 U * q h @.,.6.q.q.q.9.q.9.q.q.q.q.w.w.i UXUXUX",
"UX v Q.Q.Q._.OXOXOXOXOXoXOXOXOXOXoXoXOXXXXX X3Xo.4 4 4 4 4 4 4 4 4 4 4 X 9 yXK.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.Y.Z.rXX 4 ` > y @.q.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.A.rX$ d rX6XR.E.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.E.W.W.E.~.}.iXU # # X.* w k :.q.S.G.I.P.P.P.P.P.P.G.P.P.P.G.S.V.7.pX# # .2Xg.C.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.V.C.V.e.7.j.8 { 2 : t k $.,.7.9.q.q.q.7.q.9.q.q.q.w.w.y X UXUXUX",
"UX n W.Q.W._.OXOXOXOXoXOXOXOXoXoXoXOXoXoXXX.XL.GX7 4 4 4 4 4 4 $ 4 4 4 G N.G.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.G.4X7 _ s q j ,.e.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.B.! X d pXhX|.`.E.Q.Q.Q.Q.W.W.W.W.W.W.E.W.E. X6XiXP # I C > y v <.V.S.P.P.I.P.P.I.P.P.P.P.P.G.G.G.C.q.j.H X rXq.e.V.Z.Z.Z.Z.Z.C.Z.C.C.C.V.C.V.C.V.C.V.V.e.9.i.| 5 ~ & , u x :.6.9.q.q.q.7.q.9.9.q.q.q.w.w.y UXUXUX",
"UXX v Q.Q.W._.oXoXOXOXOXOXoXoXOXOXOXoXOX@XoX.X[.5X[ 4 4 4 4 4 $ 4 4 $ X G 2XV.P.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.] $ | : t x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.e.rX4 4 P rXaXkX|..X`.~.`.`.(..X XkX5XiX( 7 o $ o.* q j :.q.Z.G.G.P.P.P.P.P.P.P.P.G.G.P.G.G.S.e.0.0XX X pX,.q.g.V.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.C.V.g.w.6.pX# ] 6 * e h #.,.7.7.q.7.9.q.7.q.q.7.q.q.w.w.y UXUXUX",
"UX x Q.Q.Q._.OXOXoXOXOXOXOXoXOXOXoXOXoXOXoXXX.X].DX9 4 4 4 $ 4 4 4 $ 8 j.q.S.Y.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.A.rXX W V q h =.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.I.S.d... $ 8 P / z.rXrX0Xz.) E 8 $ o Y V : t x 6.e.S.G.P.P.P.P.P.P.G.P.G.P.P.P.G.G.S.C.q.j.J X x.#.,.q.g.C.Z.C.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.w.7.j.G 5 ~ + , y z =.<.7.q.q.7.9.q.7.9.9.9.q.q.w.w.y UXUXUX",
"UX v W.Q.Q._.OXOXoXOXoXoXoXOXoXoXOXoXOXOXoXoX.X[.5X{ 4 $ 4 4 4 $ 4 # 9 h.,.V.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.D.4X7 $ { * t x 6.C.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.H.V.k.7 5 { * q j $.q.C.G.P.I.P.P.P.P.P.P.P.G.G.G.G.G.G.D.Z.w.8.0X# X x.k =.9.g.V.Z.C.Z.C.C.C.C.C.V.C.V.V.V.V.V.V.V.e.9.5. . ' 6 * e j v ,.7.q.7.7.q.q.7.9.9.q.9.9.q.q.w.i UXUXUX",
"UXo v Q.Q.Q._.oXOXOXOXOXOXoXoXOXoXOXOXoXoXoXoX.XR.'.DX9 4 4 4 4 4 4 o G D #.q.D.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.` _ s > a $.q.H.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.Z.t.x.X o | 3 > y x <.e.S.G.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.D.Z.V.7.j.K X O.a @.6.w.V.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.g.e.q.<.z.# 5 ~ + > y k $.<.7.7.9.q.7.q.7.7.7.9.9.9.q.q.w.i UXUXUX",
"UX x Q.Q.Q._.OXoXOXoXoXOXoXOXoXOXoXoXoXOXOX).XX.XK.5X{ 4 4 $ 4 4 # 8 Q v 9.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX 4 | : t x 6.V.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.j.I G T * q j :.q.C.D.P.P.P.G.P.P.G.P.G.P.G.G.G.G.G.G.D.D.C.w.<.9X# X O.y v <.q.V.V.C.C.C.V.C.V.C.V.C.V.A.V.V.g.V.V.e.w.6.j.G ` 0 * w h v ,.6.7.q.q.9.9.7.7.q.q.0.9.9.q.q.w.y UXUXUX",
"UXo n Q.Q.Q._.OXoXOXoXOXoXOXoXoXoXOXoXOXoXoXoX@X(.R.'.uXG 4 $ 4 $ X 8 Q x 6.Z.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.H.2X8 ' 6 > a $.w.S.U.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.S.0.pX4 $ .; > y v 6.e.S.G.G.G.P.P.P.G.G.G.P.G.G.G.G.G.G.D.D.D.Z.g.7.a.W X O.y z ,.q.g.Z.Z.g.Z.g.Z.Z.g.Z.g.g.V.V.g.g.g.V.g.w.9.5. . 8 U % > y k $.,.6.9.9.9.9.9.9.6.9.9.9.9.9.9.q.w.t X UXUXUX",
"UX v W.Q.Q./.oXOXoXOXoXOXoXoXOXoXOXoXoXoXoXoXOX@X.X[.M.AX4 4 $ $ 8 A x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.n.` G U * t x 2.V.P.T.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.G.V.i. .X ` d * e k :.q.Z.G.G.P.P.P.G.P.G.P.G.P.G.G.G.G.G.D.G.D.D.S.C.w.,.z.5 X O.e z =.q.g.Z.g.Z.g.Z.g.Z.g.g.g.Z.V.V.g.V.V.g.g.e.q.,.x.$ X X.- * q h v >.6.9.9.9.9.9.9.9.9.7.9.6.9.9.q.q.q.t UXUXUX",
"UX v Q.Q.Q._.oXoXoXOXoXoXOXoXOXoXoXoXoXOXoXoXoX).XX[.'.aXU 4 $ # G R x 6.C.U.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.Z.rXX # o.; q h =.q.D.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.q.j.U H P * > h @.6.V.S.G.P.P.G.P.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.S.Z.g.9.4.O.o X O.e z >.q.g.g.g.Z.Z.g.Z.g.g.Z.g.Z.V.g.g.V.g.g.g.e.w.6.j.8 I J & > y z #.<.6.9.9.9.9.9.9.9.6.9.9.7.9.9.9.q.q.t X UXUXUX",
"UX v W.Q.Q._.OXOXoXoXOXOXoXoXoXOXoXoXOXoXoXoXoXoXXX.XK.B.DX5 4 o 8 R x 6.C.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.2X8 I K : t v 6.C.I.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.C.6.z.7 4 | = > t x ,.w.Z.G.G.P.P.P.P.G.P.G.G.G.G.G.G.D.D.G.G.D.D.D.D.Z.C.w.,.k.G X O.e z =.q.g.g.Z.g.g.Z.g.g.g.g.g.g.g.V.g.g.e.g.g.e.w.9.5. . 4 | + * q h @.>.6.6.9.9.9.9.9.6.6.9.7.6.9.9.9.9.9.q.t UXUXUX",
"UXo v W.W.W._.oXoXOXoXOXoXoXoXOXoXoXoXoXoXoXoXoXoXoXXXR.'.2Xc.$ 8 R x 6.C.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ 5 { * q j =.w.G.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.w.5.0X$ # X.2 * q j =.q.C.S.G.G.P.G.G.G.P.G.G.G.G.G.G.G.D.G.D.G.D.S.S.D.S.Z.g.9.=.x.$ X O.y z >.q.g.g.g.Z.g.Z.Z.g.g.g.g.g.g.V.e.V.V.e.e.e.w.9.,.pX# X | 0 & , y k =.,.6.9.9.9.9.9.9.7.7.6.6.9.6.7.9.9.r.q.t UXUXUX",
"UX v Q.Q.Q._.oXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoX).oXoXXX.XK.n.8XH 8 R x 6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX # o.2 > y #.7.S.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.q.u.o.# X | 6 * q h #.6.e.Z.G.G.P.G.P.P.G.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.S.S.Z.C.w.,.u. .X X .e j >.9.g.g.Z.g.g.g.g.g.Z.g.g.g.V.g.g.e.e.e.V.V.w.w.6.h.G I K + : e j #.>.6.6.9.9.9.6.9.6.9.6.9.7.7.6.9.9.9.9.q.t UXUXUX",
"UXo n W.Q.Q._.oXOXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXXX(..XL.B.pX4 8 A x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.S.2X9 _ V * e k ,.g.G.T.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.Z.6.p.` o W K & > y x ,.w.C.G.G.P.P.P.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.D.S.S.C.g.9.=.l.I X o.e z =.9.g.g.g.g.Z.g.g.C.g.g.g.C.g.g.e.e.e.e.e.e.e.w.7.5. . 5 ` + * q u x =.<.7.7.9.9.9.9.6.9.6.9.6.7.6.6.9.7.9.q.q.t o UXUXUX",
"UX v Q.Q.Q._.oXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).oX(.[.v.i. .o V R x 6.Z.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ 8 ] * q h =.q.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.g.>.h._ o W P % : t k =.q.V.S.G.G.G.G.P.G.G.G.G.G.G.D.D.D.G.D.D.D.S.D.S.D.S.S.S.Z.Z.C.w.6.#.z.5 X O.t z =.9.g.g.g.Z.C.g.g.C.g.g.g.g.g.e.V.V.e.g.e.e.e.w.9.,.0X# # X.2 & > t k #.,.6.7.9.9.6.9.6.9.6.9.9.6.6.7.6.6.7.9.9.9.t UXUXUX",
"UX v Q.Q.Q./.oXoXOXOXoXoXoXoXoXoXoXoX).oXoXoXoX).oXoXoXXX^.F.9.l.! 8 R x 6.Z.I.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.Z.rXX 4 o.; > y v 6.C.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.S.w.1.k.T I W % * e j $.9.g.S.G.G.G.G.G.G.G.G.G.G.G.G.D.D.G.S.D.S.D.S.S.S.S.S.S.S.S.Z.Z.g.q.1.-.O.$ X o.e z =.9.g.g.g.C.g.g.g.g.C.g.g.g.V.e.e.e.e.e.e.e.e.w.q.6.j.G X ` d + : t h v >.<.6.7.9.9.7.7.6.9.6.7.6.6.6.7.7.6.9.7.9.q.r o UXUXUX",
"UX v W.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).XXH.V.6.k.L 8 R x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.U.G.2X8 $ o.2 * t z ,.e.H.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.S.q.$.k.U I ! & * q j #.6.e.Z.D.G.P.G.G.G.P.G.G.G.G.G.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.S.S.Z.C.w.6.=.F .# X O.e z =.9.g.g.C.g.g.g.g.g.g.g.g.g.e.e.g.e.e.g.e.w.w.w.q.6.5. . _ J + * q y x $.<.6.7.9.7.7.7.6.9.7.6.6.6.6.6.6.6.6.7.9.9.q.e o UXUXUX",
"UXo v Q.Q.Q./.OXoXoXoXoXoXoXoXoXoXoXoX).oXoXoXoXoX).oXoXoX(.U.D.w.,.z.9 8 A x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.'.[ # { 0 * q j =.w.S.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.P.C.9.$.k.W T U % * q a @.<.w.C.S.G.G.G.P.G.G.G.G.G.G.D.D.D.D.G.S.D.S.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.g.w.6.#.D { o X O.q z =.9.e.g.g.g.g.g.g.g.g.g.g.g.V.e.e.e.e.e.e.e.e.w.q.9.>.z.$ K I @ * , y k #.,.6.7.7.7.6.9.7.7.7.6.6.6.6.6.6.6.6.7.6.9.9.9.t o UXUXUX",
"UX v Q.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoX).oX).oXoX).oX).!.E.I.Z.q.;.x.5 V R x 6.C.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.A.rX# X ] V * q f #.8.C.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.T.P.V.6.#.) { # X ' U % * q a @.,.w.C.D.G.G.P.G.G.G.G.G.G.D.G.S.G.D.G.S.D.S.G.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.C.g.9.,.v Q Y o X .e j =.9.e.g.g.g.g.C.g.g.g.g.e.g.e.g.e.e.e.e.w.e.e.w.q.9.,.j.G 8 ' + & : t j @.:.,.6.7.7.7.9.6.9.6.6.6.6.6.6.6.6.6.6.6.6.6.9.q.r UXUXUX",
"UX v W.Q.Q./.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX).).).oX).).Q.W.E.P.C.7.4.9X7 8 R x 6.C.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.D.2X9 # ' V & , u v 6.C.G.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.U.H.V.6.@.D x.4 4 | V + * w u v ,.q.g.S.G.G.P.G.G.G.G.G.G.D.D.G.G.S.G.S.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.C.A.e.7.>.z ) ! o X x.e j >.9.w.g.g.g.g.g.g.g.e.e.e.g.e.e.e.e.e.e.w.e.w.e.w.q.6.4. . G ` # + > e h v =.,.6.7.7.7.7.6.9.9.6.6.6.6.6.6.6.6.6.6.6.6.9.0.9.t o UXUXUX",
"UXo x !.Q.Q./.oXoXoXoXoXoXoXoXoXoXoX).oX).).oXoXoXoX).oX_.Q.W.W.E.G.g.6.-.z.7 G A z 6.C.I.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ X ` V % > y x <.V.S.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.D.g.6.@.N x.G 8 | 0 + * q h v ,.q.g.D.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.G.S.S.S.S.S.S.S.S.Z.Z.Z.S.Z.Z.Z.Z.Z.C.V.w.6.$.k Q _ o X o.e z =.7.e.g.g.g.g.e.g.e.e.g.e.e.e.e.e.w.w.w.e.w.w.w.q.q.6.,.z.$ G _ @ % : w f x $.,.6.7.7.7.7.7.6.6.6.7.6.6.6.6.6.6.<.6.<.6.6.7.9.9.r UXUXUX",
"UXo v Q.Q.Q./.oXoXoXoXoXoXoX).oXoX).oX).oXoX).oXoX).oXoX!.Q.Q.W.W.U.D.g.<.M .8 8 R x 6.C.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rXX # ` V % > t x ,.e.F.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.E.U.S.g.6.#.l ( ` $ $ ' U = % : e h v ,.q.V.Z.G.G.P.G.G.G.G.G.G.G.S.G.D.G.S.D.D.G.S.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.C.Z.C.Z.g.g.w.6.#.j Q ! X X o.e k =.7.w.g.g.g.g.g.g.g.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.q.7.<.h.G J ` = + : q y z #.,.6.6.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.7.9.e o UXUXUX",
"UX v W.Q.Q./.oXoXoX).oXoXoX).oXoX).oXoXoX).oX).oXoX).).Q.Q.Q.Q.W.E.U.D.e.<.m z.L V R x 6.Z.I.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.T.H.2X8 4 X.d & > t z >.w.S.I.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.T.U.D.V.7.#.j S O.I X X H X.6 @ * > t j #.<.q.C.S.D.G.P.G.G.G.G.G.G.D.D.G.D.D.S.D.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.Z.V.e.q.,.#.h R o.# o x.e j =.7.w.e.g.g.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.7.6.5. . X Y W @ + : q u z @.,.<.6.7.7.7.7.7.6.6.7.6.6.6.6.6.6.<.<.<.<.6.<.6.6.9.9.t o UXUXUX",
"UX v Q.Q.Q./.oXoXoXoXoXoX).oXoX).).oXoX).oX).oX).oX)./.Q.Q.Q.Q.W.W.E.U.S.w.,.n ) ] X G A x 6.C.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.n.[ G | 1 * > t x >.w.Z.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.E.E.T.U.D.g.9.=.x u A O.I # # H X.J + & * q y z $.6.w.C.S.D.G.G.G.G.G.D.G.G.G.D.D.D.D.S.D.D.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.g.e.9.,.@.h B x.7 X o.e k =.7.w.e.g.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.q.9.6.>.pX$ $ | G @ + : , y z @.>.<.6.7.7.6.7.6.7.6.6.6.6.6.<.6.6.6.6.<.<.<.<.<.6.8.7.0.r o UXUXUX",
"UX n Q.Q.Q./.oX).oXoX).oXoXoX).oXoXoX).oXoXoX).oX).oX!.Q.Q.Q.Q.Q.Q.W.E.U.S.w.,.v Q o.4 8 Q z 6.C.I.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.U.Z.rX# X I ` 1 & > y x :.w.Z.I.~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.W.E.T.U.G.Z.q.>.@.h i A O.W 5 X o 5 Y o.K = % * > t a v =.9.e.C.S.D.G.G.G.G.G.G.G.G.D.D.G.D.D.D.D.D.S.D.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.g.g.e.9.,.#.j g z.G o . o.e k =.7.w.e.e.g.e.g.e.e.e.e.e.e.b.w.w.w.w.w.w.w.q.w.w.q.q.7.,.h.G 7 o.6 @ % : w f k @.>.<.6.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.<.<.6.6.6.6.6.6.7.7.t UXUXUX",
"UX n W.Q.Q./.oXoXoX).oX).).oXoX).oXoX).oX).oXoX).).).Q.Q.Q.Q.Q.Q.Q.Q.W.~.U.S.e.,.v N x.L H Q x 6.Z.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.H.2X8 7 O.P * : q y v ,.w.S.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.W.W.E.W.W.W.E.E.T.U.P.Z.e.6.$.k u e B ^ O.Y 8 $ $ 9 T X.Y 9 + % * > q y k #.,.q.g.Z.S.G.G.P.G.G.G.D.G.D.G.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.C.C.g.w.9.,.*.j i ^ | 5 x.t k =.6.w.e.V.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.7.<.4. .# ! ` 1 + & > e f z v ,.<.6.6.7.6.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.6.6.7.7.t UXUXUX",
"UXo v W.Q.Q./.).).oXoXoXoXoX).oXoX).oXoXoX).).).).oX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.S.g.6.#.k Q ZXD @.7.S.U.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.P.'.9Xz.g q > w a @.<.w.S.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.E.E.W.E.T.U.P.S.g.9.,.#.k i q , s P { +.| Y T H H H I Y { O.| L 6 = + * * > e y j @.=.7.w.g.S.D.G.G.G.G.G.G.G.G.G.D.D.D.D.S.D.S.D.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.C.Z.Z.C.C.Z.C.C.C.C.V.V.C.g.g.g.w.7.,.#.k y B .x.y x =.7.w.e.e.e.e.e.e.e.w.e.e.w.w.w.e.w.w.w.w.q.q.w.q.q.q.9.6.=.pX9XZ : * * > e f b #.>.,.6.7.7.7.7.7.6.7.6.6.6.6.<.<.6.6.<.<.<.<.<.<.<.<.<.<.6.7.7.e o UXUXUX",
"UX n W.Q.Q./.oXoXoX).).oX).oX).).oXoX).oX).oX).).oX/.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.D.V.7.$.v M u.$.w.S.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.F.m.=.j u u k #.6.V.S.I.E.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.U.I.D.Z.w.7.>.v k u t q > * 2 s s V s V 6 6 1 & & & * : > q e u j @.=.6.q.g.Z.S.D.G.G.G.G.G.G.G.D.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.C.C.C.g.g.g.w.9.<.$.z h i D h v >.7.w.e.e.e.e.e.w.e.e.e.w.w.w.w.w.q.b.q.q.q.q.q.q.q.q.9.7.,.u.N t q , q t h x $.>.6.6.6.7.7.6.6.6.7.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.<.<.6.7.7.r o UXUXUX",
"UX v Q.Q.Q./.).).oXoXoX).oX).oXoX).).).).).).).).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.U.G.C.q.6.1.,.7.V.H.U.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.G.V.7.#.@.#.,.9.V.G.U.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.W.T.E.W.E.E.E.E.E.T.U.U.P.S.C.w.7.,.#.x j y t e q , > > : : : > > > q e t y j x @.:.6.q.e.C.S.S.G.G.P.G.G.G.G.G.G.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.Z.S.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.g.g.g.C.C.g.g.w.9.6.=.x z k x #.,.9.w.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.7.<.=.x j y y a k v :.>.<.6.7.7.7.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.<.<.<.<.<.<.6.6.7.r o UXUXUX",
"UXo v W.Q.Q./.oX).oX).oXoXoXoX).).).oXoXoXoX).).oX_.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.T.P.Z.g.w.w.V.Z.I.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.S.g.9.7.7.w.Z.G.U.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.U.P.P.S.C.w.9.<.>.#.v x j h u y y y y y a h j k x #.=.,.7.q.e.C.Z.D.G.G.G.P.G.G.G.G.D.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.Z.S.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.g.g.C.g.C.g.C.e.e.w.q.6.,.=.#.=.>.6.q.w.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.9.6.>.#.x k k x #.:.,.6.6.7.7.6.7.6.6.6.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.<.,.<.,.<.<.6.7.7.e o UXUXUX",
"UX x Q.Q.Q./.).oX).oXoX).).).oX).oX).).).).).oX)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.G.F.S.D.P.T.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.I.D.Z.C.S.G.U.E.E.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.E.T.W.W.T.E.E.E.E.T.E.T.T.T.T.T.U.U.P.G.D.C.V.w.9.6.,.:.=.#.#.#.#.#.#.#.$.=.,.6.7.q.w.V.Z.S.S.G.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.D.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.g.C.C.g.C.g.g.g.V.V.e.w.q.6.6.<.<.6.9.q.w.e.e.e.e.w.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.6.6.,.=.#.$.=.>.<.6.7.6.7.7.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.6.,.<.,.,.,.,.,.<.,.<.2.7.6.e UXUXUX",
"UXo v W.Q.Q./.).oX).oX).).oX).).).oX).oXoX).).).).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.E.U.I.U.E.~.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.E.U.I.I.U.T.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.I.P.G.G.S.C.V.V.w.q.q.7.7.6.7.7.9.q.w.e.g.V.Z.Z.S.G.G.G.G.P.G.G.G.G.G.D.D.G.D.D.D.D.D.D.S.D.S.D.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.C.V.V.V.C.C.g.V.g.V.g.g.V.V.e.g.e.q.q.7.q.q.q.w.e.e.b.w.w.e.e.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.q.9.9.7.6.6.,.,.,.<.<.6.7.6.7.6.7.6.6.6.6.6.6.6.<.6.6.,.,.<.6.6.,.<.,.<.,.,.,.,.,.,.<.6.6.6.r UXUXUX",
"UX @.W.Q.Q./.oX).oX).oX).oX).oX).).).).).).oX).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.E.W.E.W.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.E.E.E.E.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.E.W.E.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.P.P.G.G.D.S.Z.Z.C.C.C.C.C.C.Z.Z.S.S.D.D.G.G.G.G.G.G.P.G.G.G.G.G.G.G.D.G.D.D.S.D.D.D.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.V.C.C.V.C.V.g.V.C.g.V.V.g.V.e.g.e.g.e.e.e.w.q.w.w.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.q.9.9.7.6.6.6.<.6.6.7.7.7.6.7.6.6.6.6.6.6.6.6.6.,.,.6.6.<.,.,.<.,.<.,.,.,.,.,.,.,.<.<.6.6.r o UXUXUX",
"UX n Q.Q.Q./.oXoX).).oX).).).oX).oX).).).).).)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.W.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.I.I.I.P.P.P.G.H.G.G.G.G.G.G.D.H.G.P.G.P.P.G.P.P.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.C.C.V.V.C.V.V.V.g.g.g.V.g.g.g.g.e.g.g.V.e.e.e.b.w.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.7.6.6.7.7.6.7.7.7.6.7.6.6.6.6.6.6.,.,.6.,.6.,.6.,.<.,.,.<.,.,.,.,.,.,.,.,.<.<.6.6.r UXUXUX",
"UX v W.Q.W.!.).).oX).).oX).).).).).oX).).).).)./.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.W.E.E.W.E.E.E.T.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.U.I.I.I.I.P.P.P.P.P.P.G.P.G.P.G.P.G.P.G.P.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.V.V.V.g.C.g.g.g.g.g.g.g.g.g.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.q.9.q.9.9.9.9.7.9.7.9.7.7.7.7.7.7.6.6.6.6.6.6.6.<.6.6.6.6.6.6.,.6.<.<.,.<.,.,.,.,.,.,.,.,.,.,.,.<.6.7.r UXUXUX",
"UXo v W.Q.Q./.).).).).oX).).oX).).oX).).).).).).!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.E.W.E.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.I.U.U.I.I.U.I.I.I.P.I.P.P.G.I.G.I.P.P.G.P.G.P.G.G.G.G.G.D.D.D.D.D.D.S.D.D.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.e.w.e.w.e.w.w.w.w.w.q.q.q.w.q.q.q.9.9.q.q.9.q.9.q.9.9.q.7.7.9.7.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.,.6.,.,.6.,.<.,.,.,.,.,.,.,.,.,.,.,.,.,.,.<.2.6.e o UXUXUX",
"UX v Q.Q.Q./.).).oX).oXoX).).).).).).).).).).).Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.W.E.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.U.T.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.P.I.P.I.P.I.G.P.G.P.G.G.G.G.G.G.D.D.G.G.G.D.D.D.D.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.V.C.g.g.g.g.g.g.g.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.w.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.7.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.<.<.6.,.<.6.,.,.6.6.,.<.,.,.<.,.,.>.,.>.>.,.>.,.>.,.<.6.6.e UXUXUX",
"UXo n W.Q.Q./.oX).oX).).).).).).).).).).).).)./.Q.Q.!.Q.Q.Q.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.!.Q.Q.Q.Q.W.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.!.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.T.T.T.T.T.U.U.U.I.T.U.U.U.U.I.I.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.G.P.G.G.G.G.G.G.P.G.G.G.D.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.Z.C.C.g.V.V.A.C.V.C.V.V.A.V.V.V.e.g.g.g.A.g.g.e.e.e.e.e.e.e.w.e.q.w.q.w.w.q.w.w.w.w.q.q.q.q.q.q.q.9.9.q.9.9.9.q.9.9.9.7.9.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.<.<.6.,.,.6.6.<.,.,.,.,.,.,.,.,.>.,.,.>.>.,.>.,.,.<.<.6.r o UXUXUX",
"UX v Q.Q.Q.!.).).).).).).).).).).).).).).).).!.Q.Q.Q.~./.(.(.(.^.(.(.(.^.(.(.^.(.(.^.(.(.(.(.(.(.(.(.^.(.(.^.(.(.(.^.(.(.^.(.(.(.(.(.^.(.(.(.^.(.(.(.^.(.(.^.(.(.(.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.~.~.(.^.^.^.^.^.^.R.R.^.^.^.^.R.R.^.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.K.R.R.R.K.R.K.R.K.R.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.L.L.K.L.K.K.S.H.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.A.A.J.J.J.J.v.J.v.v.J.v.v.v.J.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.v.y.v.v.v.t.v.t.y.v.t.y.y.y.y.t.v.t.t.t.t.v.t.t.t.t.t.t.t.t.t.0.0.7.6.7.6.6.6.7.6.6.6.6.<.6.<.6.6.<.6.,.,.<.,.,.,.,.,.>.,.,.,.,.>.,.,.>.,.1.,.,.<.<.e UXUXUX",
"UX x Q.Q.Q./.).).).).).).).).).).).).).).oX&XzXmXmXJXfXfXdXfXfXdXfXGXfXdXfXdXfXGXfXfXfXdXfXGXfXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXfXGXfXdXGXfXdXdXsXfXgXjXmXzX.XW.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.%XxXmXjXfXfXfXfXdXGXfXdXdXGXfXdXdXdXdXdXdXfXfXGXdXdXfXfXdXdXdXdXdXdXGXdXdXdXdXdXdXdXfXGXuXdXdXdXdXdXGXdXdXdXGXdXdXuXdXdXdXdXdXuXdXdXdXdXuXdXdXdXfXjX6XlX].F.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.A.'.3X6XgXfXGXdXdXuXuXuXuXuXdXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXuXSXuXuXtXuXuXuXuXuXtXSXuXuXuXuXuXSXuXdXaX4Xf.0.6.6.6.6.6.6.6.6.,.6.,.6.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.,.,.,.<.6.e o UXUXUX",
"UX v W.Q.Q.!.).).).).).).).).).)._.).oXzXIXGXuXqX` I H L H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H I T _ +.eXdXgXzX(.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.(.xXgXiXwXo.! L L H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G H H H I ] X.wXSXsX6XJ.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.A.3XfXSXAX+._ I H H G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G J H H Y | ZXAXiX8Xd.,.6.,.<.,.,.6.<.<.,.<.<.,.,.,.,.,.,.,.,.>.,.=.,.>.>.>.,.>.>.,.,.<.2.e UXUXUX",
"UXo n Q.Q.Q./.).).).).).).).)._.).).cXJXDX+.H $ # 9 ` AXfXzX~.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.!.zXfXwXY 7 # o # 9 _ AXfX'.Z.Z.Z.S.Z.S.Z.Z.Z.C.Z.C.'.sXAX_ 9 # o 5 I qXtX4X5.,.6.<.6.,.<.,.6.,.,.,.,.,.,.,.,.,.>.,.=.,.=.>.>.>.>.>.,.,.,.,.<.e UXUXUX",
"UX v W.Q.Q./.).).).).).).).).).).cXPXqX8 $ X 4 ` uXlX`.W.W.Q.Q.Q.Q.Q.Q.Q.zXdX` $ 4 X.uXn.V.Z.Z.Z.Z.Z.Z.Z.Z.C.'.GX| 4 X H 9XDXi.,.,.,.6.<.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.,.>.>.>.>.>.>.>.,.<.<.r o UXUXUX",
"UXo n Q.Q.Q./.).).).).)._.).).).,XJXO.4 # $ X H SXlXT.E.W.Q.Q.Q.Q.Q.(.GX_ X # X.dXr.V.Z.Z.Z.Z.Z.C.C.C.sXO.# 4 O.uX1.>.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.>.,.=.>.>.>.:.>.>.>.,.>.,.2.w o UXUXUX",
"UX v W.Q.Q.!.).).).).).).)._.).MXDX5 # $ # Y fXK.T.E.W.Q.Q.Q.Q.zXtX$ 7 tXm.w.V.C.Z.Z.Z.Z.C.'.uX8 5 9Xj.=.>.,.,.,.<.,.,.,.,.,.,.,.,.>.>.,.=.>.>.>.>.>.>.>.>.>.,.<.<.e UXUXUX",
"UX v Q.Q.Q.!.)._.).).)._.).).).MXX.$ $ # # 4 eXM.D.U.E.Q.Q.Q.Q.mXX. X qX<X7.w.g.C.C.C.C.C.3XeX# | 8X@.=.>.,.,.,.,.,.>.>.,.>.=.,.,.>.>.>.>.>.:.>.>.>.>.>.>.,.,.2.w o UXUXUX",
"UX v W.Q.Q.!.).).).).).).)._.).PX_ # # # # # wX2XC.P.E.W.Q.Q.W.jX_ +.j.>.9.g.C.C.C.C.C.3XZXX Y eXk #.:.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.=.>.>.$.>.$.>.>.,.,.<.w o UXUXUX",
"UXo v W.Q.Q.!.).).)._._.)._.).(.JX_ # $ # X 4 5 9 8 J H I I I I I I I I I I I I I I I I I I I I I I I I I I H G G 8 5 # X ZXj.w.S.T.E.Q.Q.E.jXW o 4 8 G G H H H H H H H H H H H H H H H H J G 9 $ O.z.#.<.q.V.C.C.C.C.6XZXo # 5 7 8 8 G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G G 9 5 4 o Y wXh x #.:.>.,.,.,.,.,.>.,.>.>.>.>.>.:.>.=.>.$.>.:.>.$.>.>.,.<.r UXUXUX",
"UX v Q.Q.Q.!.)._.).).).).).).oXJX_ # # # o H X.+.ZXc.c.ZXc.ZXqXqXqXZXqXqXqXqXqXZXqXqXZXqXqXqXqXqXZXqXc.qXqXqXZX+.ZXc.+.qXZX{ $ o X ZXl.6.C.I.T.W.W.E.gX_ $ Y +.+.+.qXqXZXc.qXZXc.qXqXqXqXqXc.qXqXqXc.c.c.c.c.ZXX.H X X.k.x ,.q.V.V.C.C.V.5X0X 4 ' +.+.+.c.qX+.qXc.qXqXqX+.c.ZXc.qXZXc.ZXc.c.c.c.c.c.c.c.c.ZXc.c.qXZXc.c.c.c.ZXc.ZXZXc.ZXc.+.+.+.H o T AXy k @.=.,.,.>.>.>.>.>.>.>.>.>.>.:.>.>.=.>.$.$.>.$.>.>.>.,.,.w o UXUXUX",
"UXo n W.Q.Q./.).)._._.)._._./.(.PX_ # # # J c.` J s 0 0 2 2 ; < ; < ; < < < ; ; ; < < ; ; < < < < ; < < < < ; < 2 3 s 3 s P qX{ X qXl.:.e.G.E.W.W.T.jXY H c.ZX! V 0 1 ; - ; ; ; : ; ; ; ; ; ; ; : ; ; - 2 2 3 K | ZXX.5 O.} j =.9.g.V.C.C.g.5XqXo $ +.O.L s 0 0 2 1 = = = = = = = = = = = * = % = = = = = = = = % = = = % = = = = = & = 1 ; 1 0 6 C ` +.G Y wXt j v =.>.>.>.,.>.>.,.:.,.>.>.>.:.>.=.=.$.>.$.>.>.>.>.>.,.,.w UXUXUX",
"UX v Q.Q.Q.!.).)._.)._._.).(.(.PX_ $ # # O.{ % & * > q q e e t e t t t t e t t t t t t t e t t t t t e t e t t t t e e q q R qX4 X qXQ $.q.S.T.E.W.T.gXW I qX] 1 % * : > > q q q q q e q q w q q q q q q q q q q q > B O.+.G o.} h #.7.e.V.C.C.g.5XqX H c.4 @ + & * : : > > > : > > > > > > > > > > > > > < > : > > > > > : > : : : : : : : : > : * : * * o.X. I wXq h x =.=.,.,.>.>.,.>.>.=.>.=.=.=.:.:.=.>.$.=.$.:.$.>.>.,.,.r UXUXUX",
"UX v W.Q.Q.!.)._._.).).)._.).(.PX! # # # # ZXK * q t h j x x x x n v v v v v v n v v v v v v v v v v v v v x v v x v x x k k M wX8 X c.( #.q.S.T.W.W.T.gX_ 5 +.U % * > q t y h h j j j k j j j j j j j j j j j j h a a y e r } +.# X.} h #.6.e.V.C.C.g.5XqXo ` | + * : q e e t y y y y y y y u y y y y y y y y y y y y y y y t t t y t t t t t t t t t t e e e q E qXX Y qXq u x #.>.>.,.>.,.:.:.>.:.>.=.=.:.=.=.=.>.$.$.:.$.>.>.:.>.,.r o UXUXUX",
"UX n W.Q.Q.!.).)._._._._._.).(.JXY # # X 4 ZXC q u x #.1.6.6.6.6.7.7.7.9.7.9.7.9.7.7.7.9.7.7.7.0.7.0.7.7.7.q.7.8.7.7.7.6.6.1.3.tXG X ZXQ @.9.S.U.E.E.T.gXY I c.1 * , t h x @.#.=.:.>.>.>.>.>.>.=.>.>.=.>.:.:.=.$.=.$.#.@.z j S wX7 X.} a #.6.w.g.C.V.g.5X9X X.` * > t h j k x x x x x v x x x x x x x x z x z x z z z z z k z k x k z z k k k k k k k j j j h u D wX$ T ZXq h x #.=.>.>.>.>.:.>.>.>.=.=.=.>.=.=.=.$.:.$.=.$.$.=.>.>.,.r UXUXUX",
"UXo v Q.Q.Q.!.).)._._._._._.(.(.PX_ # # o 4 ZXZ y x <.q.V.C.C.S.S.S.S.S.Z.S.S.S.S.Z.S.S.S.S.Z.Z.S.S.S.S.S.S.S.S.S.S.Z.Z.Z.C.V.w.uXI # qXQ @.9.S.U.E.E.U.sXY I +.< q u x =.,.6.q.q.w.q.w.w.w.w.q.w.w.w.w.w.q.q.q.q.q.q.7.6.,.$.u.AX8 X.} u #.6.w.V.V.V.g.5XqX X.~ > t j v #.:.:.:.,.,.,.:.,.,.:.>.>.>.:.:.:.=.=.=.=.=.$.=.$.$.=.=.=.$.#.=.#.=.#.#.#.#.#.#.#.@.@.x p.wX4 U wXq u x #.:.>.>.>.:.,.:.,.=.:.=.=.=.=.=.$.$.$.=.$.$.=.>.:.>.,.w UXUXUX",
"UX x Q.Q.Q.!._._._.)._._.)./.(.JX_ # # 4 +.S k ,.w.S.G.I.I.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.T.U.U.U.T.U.U.U.U.U.U.U.U.U.U.U.G.S.sX| X 7 ZXS @.9.S.U.E.W.U.gX_ 7 c.R y x >.9.w.V.C.C.Z.Z.Z.Z.Z.Z.C.C.Z.g.g.Z.Z.C.V.C.g.g.g.e.w.8.8Xx.# O.} u #.6.w.g.V.V.e.4XqXX X./ q h x :.<.6.6.7.6.7.7.6.6.7.7.6.7.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.<.,.,.<.,.,.,.,.,.,.,.>.:.=.$.p.qX4 T qXq u x #.:.>.>.>.,.:.:.:.:.:.=.=.$.$.=.$.$.$.$.$.$.$.>.:.>.>.w o UXUXUX",
"UXo v W.Q.Q.!.)./.)._._._._./.(.PXW # # 4 qXA @.7.Z.P.T.E.W.E.W.W.W.W.W.E.W.W.W.W.E.W.W.W.~.W.W.W.W.W.E.W.W.E.W.W.W.E.W.E.E.I.{.SXW # 4 O.x.i #.q.S.U.E.E.U.gX_ _ wXl.&.7.e.Z.S.D.D.S.G.G.S.D.S.S.S.S.S.S.S.S.S.Z.S.Z.C.Z.S.'.hXeXG o.} a @.6.w.g.g.g.g.5Xc.o X.[ t k #.<.7.q.q.q.q.q.q.q.q.7.q.9.9.9.9.9.9.9.9.7.9.7.7.6.6.7.6.6.6.6.6.6.6.6.6.<.6.<.,.6.,.,.,.,.a.wX4 Y wX, u z #.=.:.:.,.>.=.=.>.$.>.>.$.$.$.$.$.$.$.$.$.$.:.=.=.:.>.w UXUXUX",
"UX @.W.Q.Q.!.)._._._._._._.(.(.PX_ # X 4 qXS #.q.D.T.W.Q.Q.Q.Q.W.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.T.D.7XyX+.I 4 X # 7 Y c.c.p a #.w.S.T.E.E.U.gXW X Y qXuX5X{.].H.H.H.H.H.H.S.H.H.H.D.H.F.H.F.F.F.F.F.L.].{.hXuXqX8 X.} u @.6.w.g.g.g.w.5Xx.o O.[ y x >.6.q.w.w.q.q.w.q.q.q.q.q.q.9.q.q.q.9.9.9.9.9.9.9.9.9.9.9.7.7.6.9.6.6.6.6.6.6.6.6.6.6.<.6.,.a.9X4 T qXq y z #.=.=.:.:.>.$.>.$.:.$.$.:.$.>.$.$.$.$.$.#.=.;.$.=.,.,.w UXUXUX",
"UX n Q.Q.Q.Q.)._._._.)._._._.(.PXW # X $ qXD #.q.G.T.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.I.C.d.8XwXZX+.X.{ { | O.+.x.qX! 2 w k >.e.D.U.E.E.U.fX_ 5 ] AXtXuXfXGXdXdXdXfXGXdXdXGXdXdXdXdXdXdXdXdXdXdXuXAXc.L # X.} u @.6.r.g.g.g.g.5Xc. X.} y x :.7.q.w.w.q.w.q.w.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.7.9.6.9.7.7.9.6.6.6.7.6.6.6.6.6.6.6.6.,.6.,.a.wX4 Y qXq u x #.=.:.:.>.>.>.>.=.$.$.$.$.$.$.$.$.$.#.$.$.$.;.=.=.>.,.w UXUXUX",
"UX v W.Q.Q./._._._._././._._.(.PXW # X # qX( #.w.H.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.~.U.S.q.$.M A ( [ | o.| ~ U V ; : q h @.6.C.P.T.E.E.I.sXW X 4 8 H H H H H H H H H H H H H H H H H H H H 7 $ o X.} u @.<.w.g.g.g.g.5XwXX X./ y x >.6.q.q.w.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.7.9.9.9.9.6.9.7.6.6.9.7.6.6.6.6.6.<.6.,.6.6.,.,.a.wX4 Y qX, y z @.=.:.>.:.$.>.$.$.>.$.:.$.$.$.$.$.$.$.#.#.;.1.=.=.:.1.w UXUXUX",
"UXo v W.Q.Q.!._.)./._./._././.^.JXY # o { 0X4.w.H.~.W.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.!.Q.Q.!.Q.!.Q.Q.Q.Q.E.T.P.V.9.$.k y e > : > : > > q e a @.,.e.S.I.T.W.T.U.sXW X.} y @.<.w.g.g.g.e.4Xc.o X./ y x >.6.q.w.q.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.7.9.9.7.6.7.6.7.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.a.wX4 Y wXq u k #.=.=.=.=.=.=.$.=.:.$.$.$.$.$.$.$.#.$.#.$.;.1.$.$.,.:.w UXUXUX",
"UX v Q.Q.Q.!.)./.)./._./.)._.(.PX! # 4 +.tXaX6XmXxXxXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXxXlX6X2Xj.h.p.D S f y y a j x $.6.w.S.G.T.T.E.T.U.sX_ O./ h @.<.w.g.g.g.e.5XqX +.} y x >.6.q.q.q.q.q.9.q.q.7.q.7.9.q.9.9.9.9.9.9.9.9.6.9.6.9.7.6.6.6.6.6.6.6.6.6.6.6.<.6.<.<.6.<.,.a.0X4 T qX, y z @.#.=.=.=.=.$.=.$.$.$.$.$.$.#.$.#.$.#.#.$.1.;.#.=.=.,.w o UXUXUX",
"UXo n W.Q.Q.!././._._././._./.^.PXY # 4 I ` c.9XeXwXeXAX0XAXeXAXtXAXAXwXtXAXwXeXwXAXeXeXeXAX0XAXAXeXeXAX0XAXeXAXtXAXeXeXwX0XwXwXeXrXeXeXeXAXtXiX<Xi.>.6.9.e.S.P.U.T.E.E.T.U.sX! X qX( u @.<.q.g.g.g.w.4XqX X./ y v >.6.9.q.q.q.q.q.q.q.q.q.7.9.9.9.9.9.9.9.6.6.9.7.9.9.9.6.9.6.7.6.6.6.6.6.6.6.,.6.<.<.<.<.<.,.a.wX4 Y 9Xq y k #.=.=.=.=.$.$.$.=.$.$.$.#.$.#.#.#.$.#.$.=.5.;.=.=.=.>., UXUXUX",
"UX v Q.Q.Q.!._.)./._./._._._.(.JXY X X # X # # # # X # # # # X # # # # # # # X # # # # # X # # # # X # # # # # # # # X $ $ $ 4 7 H ` qXAXaXM.Z.D.P.U.T.E.T.E.T.I.sXW 7 qXZ u @.<.w.e.g.g.r.4XwXX X./ y x :.6.q.q.q.q.q.q.q.7.q.9.q.9.9.9.7.9.9.9.9.9.6.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.<.,.a.wX4 Y qXq y k @.$.=.$.$.$.=.$.$.$.$.$.$.$.$.#.$.#.#.#.;.3.;.#.=.=.>.w UXUXUX",
"UXo x Q.Q.Q.!._./././._._././.(.JX] X X 8 o.uXkXG.U.T.E.E.T.E.T.P.sX_ X X.c.w h @.6.q.e.V.V.w.4XqX X.[ y z >.6.9.b.q.q.q.q.q.9.q.9.9.9.9.9.9.7.9.6.9.7.7.6.7.7.6.6.6.6.6.6.<.6.<.6.<.<.6.<.<.<.<.<.,.,.a.0X4 Y qXq y k @.$.$.$.:.$.$.$.#.$.$.$.$.#.#.#.$.#.#.#.3.1.;.#.=.$.>., X UXUXUX",
"UX v W.Q.Q.!._.)./._././././.~.jX+.X X Y SX{.U.U.T.E.E.E.T.U.sXW $ | ZXs q h #.6.w.e.e.e.e.4XqX O./ y z :.6.9.9.9.q.7.q.7.9.q.9.9.9.9.9.7.9.9.9.6.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.,.<.,.,.,.,.s.AX4 Y 9Xq y k @.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.;.3.1.&.#.$.$.:.w UXUXUX",
"UX v Q.Q.Q.!._././._././././.(.xXSX5 X { fXF.P.T.T.T.E.U.P.sXW # 7 _ +.O.d : t k =.8.w.e.e.b.w.4XwXX X./ y z >.6.9.q.q.q.q.9.q.9.9.9.9.9.9.9.7.7.7.7.7.6.7.7.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.,.,.<.<.:.a.wX4 T ZX> y k @.#.$.$.$.$.$.$.$.$.$.#.#.$.#.#.#.#.#.3.3.3.&.#.$.:.>.w UXUXUX",
"UX x Q.Q.Q.!././._./._._././.(.R.GXo.$ 7 tXn.S.I.U.T.T.T.I.sX_ $ 7 8 H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H G G H I ] X.+.ZXc.L 2 * w u v ,.q.w.e.V.e.w.4XqX X./ y b :.<.9.9.q.q.7.q.7.9.9.9.9.7.9.7.7.7.7.7.7.7.6.6.7.6.6.6.6.6.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.a.wX4 T wXq y k v $.$.$.$.$.$.$.$.#.#.$.#.#.#.#.#.#.&.3.3.3.;.#.=.$.:.w UXUXUX",
"UX n Q.Q.Q.!./._./._././././.~.R.{.uXc.G X $ wX2Xg.D.I.T.T.T.I.sX_ 4 ' +.+.+.c.c.c.c.c.qX+.c.qXc.c.c.ZXc.+.c.+.c.qXqXc.qX+.+.qXZXqX+.+.9Xc.c.+.qX+.c.c.X._ P 6 = & * q y z $.6.q.w.g.e.e.w.4XqXo +./ y z >.6.9.9.9.7.9.q.7.9.9.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.:.a.wX4 Y qX> y k @.#.$.$.$.$.$.#.#.$.#.#.#.#.#.#.#.#.-.3.3.3.&.#.$.$.:.w UXUXUX",
"UXo v Q.Q.Q.!./././././././././.`.H.t.yXAX+._ G 5 $ X o X X X o o X X X o X X X o X X X o X X X X o o # 9Xj.9.Z.P.U.T.U.P.gXY $ O.O.L 6 0 2 2 2 2 1 2 2 2 2 2 2 2 ; 2 2 2 2 2 2 ; 2 2 2 2 2 ; 2 2 2 2 1 2 2 2 2 - & & & * * : > e u k #.,.9.w.e.g.e.e.w.4XwX o./ y z $.6.9.9.9.7.q.9.9.9.7.9.9.7.9.7.7.7.6.7.6.7.6.6.6.6.<.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.a.wX$ Y qXq y k v #.$.$.#.$.$.#.$.#.#.#.#.#.#.#.v #.3.3.3.3.&.#.$.$.>.w UXUXUX",
"UX v Q.Q.Q.!._././._././././.(.^.K.e.>.F ) 9Xc.qXqX+.c.c.c.+.+.+.+.+.c.+.+.+.c.+.+.+.c.+.+.+.c.+.ZX+.+.O.{ ] I 8 $ X c.l.>.e.D.U.U.U.P.sX_ G +.0 % & * > > > q q , q , , q , q , , , > q , , > , , , > > > , , , > > , , > > > q q q q e t u j x =.,.7.w.e.e.e.e.e.q.4XqX o.[ y z =.6.6.9.9.q.9.9.9.9.9.9.7.7.7.7.7.6.7.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.:.:.a.wX4 Y ZX, y k v #.$.$.#.$.#.$.#.#.#.#.#.#.#.#.#.&.3.-.3.&.&.#.#.$.>.w UXUXUX",
"UX x W.Q.Q.!././././.!./././././.Y.Z.q.$.z i g B P P E E E ! E E E W E E E W E E E W E E E W E E E E ] ~ ' X.qXqXc.I X qXl.=.q.S.P.U.U.P.sXY Y c.% * q t y a h h h h h h h h a a h a h h h h f h a h a f a h a u u h u a u u u a u a h j j z @.#.>.6.7.q.e.e.e.e.e.e.q.4XqXX o./ y z $.6.9.9.9.7.9.9.7.7.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.s.wX4 T ZX> y j @.#.#.$.$.#.#.#.$.#.#.#.#.#.#.v #.3.-.3.3.&.%.@.$.$.$.w UXUXUX",
"UXo v W.W.Q.!._./././././././.!./.~.P.C.9.>.x j y t q q q > > > > > > > > > > > > > > > > > > > > > > > > : : < s ^ ZX8 # qXQ #.9.Z.P.U.U.P.sXW Y qX* q u k v #.$.=.=.$.$.=.$.$.=.#.$.#.#.#.$.#.#.#.#.*.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.*.#.#.=.=.,.6.9.q.w.w.e.e.e.e.e.w.q.4XwXX X./ y z $.<.7.9.9.9.9.7.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.,.<.<.<.,.,.,.,.,.>.,.>.,.=.s.eX4 Y qX, y j x #.#.#.#.$.#.$.#.#.#.#.#.@.@.#.-.-.-.-.&.3.%.#.$.$.=.q UXUXUX",
"UX v W.W.Q.!././././.!./././././.~.U.P.Z.b.6.>.@.x k k h h h h a h f f u h u h f f f f f h f f h u u h h a u y y t x.` X qX( v 6.Z.G.U.U.G.sX_ T qX, u x =.<.6.7.7.7.7.7.7.7.8.7.7.6.7.7.7.7.6.6.6.7.7.6.6.6.6.<.<.<.<.<.<.<.,.6.6.<.6.6.7.7.9.9.q.q.e.e.e.e.V.e.e.e.e.q.4XqX X./ t z $.6.7.9.7.9.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.>.=.a.wX4 U qX, y j v #.#.$.#.#.#.#.#.#.@.@.@.#.@.#.&.3.-.-.-.&.%.@.$.$.=.q UXUXUX",
"UX n Q.Q.Q.!././././././././././.Q.W.T.Y.].N.5X5XaX4Xj.a.5.=.>.=.=.$.:.=.=.$.:.=.=.=.=.=.=.:.:.:.$.=.=.=.$.$.#.v z k.c. X qX( v 6.C.G.U.U.H.sXW T ZXe j =.6.w.e.V.g.V.V.V.e.e.V.e.V.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.e.w.w.w.w.w.r.w.q.q.q.w.w.e.e.e.e.e.e.e.e.e.e.e.w.e.w.q.4XqX X./ y k $.<.6.9.9.7.7.7.9.7.7.7.6.7.6.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.>.>.,.>.,.>.,.$.s.wX4 Y qX, y j v #.#.#.#.#.#.#.#.@.#.@.@.@.@.&.-.-.-.&.&.&.$.@.#.$.=.q UXUXUX",
"UXo v Q.Q.Q.!./././././.!./.!./.!.Q.(.xXgXdXeXwXqXqXZXwXtXdXhXB.w.w.e.e.e.e.e.e.e.e.e.w.e.e.w.V.e.e.e.e.w.w.w.q.9.6.<XqXX X c.Q x 6.C.D.U.I.P.sXW Y wXy x <.w.V.C.Z.Z.C.Z.C.C.Z.C.C.V.C.V.C.C.V.V.V.V.V.g.V.V.g.g.g.g.g.g.g.g.y.M.6XaXdXfXiXaXhX7Xy.e.e.e.e.e.e.w.e.e.w.w.q.4XqXo O.[ t z $.<.6.7.9.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.,.>.>.>.>.a.9X4 U qX> y j v v $.$.#.#.#.@.#.#.#.@.@.@.%.&.-.&.-.&.-.&.%.#.#.*.=.q UXUXUX",
"UX x Q.Q.Q.!.!./.!./././.!.!././.%XgXtX_ 8 $ o # 4 L c.uX6XH.G.G.G.G.P.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.H.D.S.C.2XwXX X ZXQ x 6.C.G.I.U.P.sX_ Y wXu @.6.e.C.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.C.g.C.g.g.g.y.6XGXeXqX{ Y Y Y ' qXAXuX5Xv.w.w.e.e.w.e.e.w.w.q.4XqXX X./ t z $.<.6.9.7.7.7.7.7.7.6.7.6.6.7.6.6.<.6.6.6.<.6.<.6.<.<.<.<.,.<.,.,.,.,.,.>.>.,.>.>.,.>.,.>.=.a.wX4 Y 9X, y h v v #.#.#.#.v #.#.@.@.@.@.v &.-.-.%.&.&.-.&.%.@.#.#.=.q UXUXUX",
"UXo v W.Q.Q.!././././././././.!.#XGX| 4 X H SX6XI.U.E.`.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.U.I.3XZXX X c.Q z 6.V.G.I.I.G.sXW Y wXu @.6.e.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.C.C.g.C.A.'.GXwXT 4 o $ L qXdXm.w.w.w.e.e.w.w.w.q.4XqX X./ t z $.<.6.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.$.s.qX4 I ZX> y j x v #.#.#.#.#.v #.@.@.@.@.%.-.&.-.-.-.%.%.-.%.@.#.$.$.q UXUXUX",
"UX v Q.Q.Q.!.!./.!./.!.!./././.mXqXX I dXK.U.E.E.W.W.Q.W.Q.W.Q.W.W.W.Q.W.W.Q.Q.W.W.W.~.T.kXAXX X ZXQ x <.V.G.I.I.G.sX_ Y wXy @.6.e.C.Z.S.S.Z.S.Z.Z.Z.C.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.C.V.g.C.C.g.sXX.$ $ ' DXt.9.w.w.w.w.w.q.q.4XqX X./ t j $.<.6.7.7.7.7.6.6.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.,.<.,.<.,.,.,.,.,.>.>.,.,.>.,.>.>.>.:.>.>.s.ZX4 I qX, i j x #.#.#.#.#.#.#.@.@.@.@.@.-.&.&.%.%.-.-.%.&.*.@.@.#.=.> X UXUXUX",
"UX x Q.Q.Q.!./././.!././.!.!./.JXY 5 SX'.H.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.kXAXX # +.Q x <.V.G.I.U.G.fXW I eXy @.6.e.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.C.V.V.g.g.g.n.SX7 # wX2X6.q.w.w.w.w.w.q.4XqXo O.[ t z $.,.6.6.7.7.7.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.$.a.AX4 H qXr y h x v #.#.#.v #.#.v @.@.v %.%.-.-.%.&.%.%.%.&.*.@.@.*.$.q UXUXUX",
"UX n Q.Q.Q.!././.!././.!./.!./.JXI 4 wXm.C.P.E.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.E.lXZXX X ZXQ x <.V.G.P.I.G.sX_ Y wXy @.6.w.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.C.V.V.V.V.C.g.g.N.SX$ X.8X,.6.q.w.w.w.q.q.4XqXo | ..t k #.,.6.7.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.>.,.>.>.,.:.>.>.>.>.:.>.$.j.wX$ G qXp t j x v #.#.#.#.v #.v v #.%.-.*.&.&.-.%.%.%.%.%.*.*.@.@.$., o UXUXUX",
"UXo v Q.Q.Q.!.!.!././.!./././.~.gXI # qXj.q.S.T.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.mXO. X ZXQ x 6.V.S.P.I.G.sXY I wXy @.6.w.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.C.g.g.7XeX# X.<X@.,.6.q.q.w.q.q.<X9X ] O.t k #.,.6.6.7.6.7.6.6.6.6.6.6.6.<.<.<.<.<.<.6.<.<.,.,.,.,.,.,.,.>.>.,.,.>.,.>.>.>.>.>.,.:.>.:.$.j.qXX 8 qXB e h x v #.#.v #.v v #.#.v -.&.-.-.%.%.%.%.%.-.%.*.*.@.#.$.q UXUXUX",
"UX v Q.Q.Q.!././.!.!.!./.!./.~.GXI O.yX2.V.P.E.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W..XfXL # c.Q z <.V.D.P.I.G.sX_ G qXD n 8.e.C.C.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.C.V.C.V.V.V.g.V.g.g.g.aXc.o X.z.z =.6.q.q.w.q.9.4XqXo H ZXN k #.<.6.6.6.6.6.6.<.6.<.6.<.<.6.<.<.6.<.<.<.,.,.,.<.,.,.,.,.,.>.,.>.>.>.>.>.=.:.>.>.:.:.:.,.5.yX_ $ qXE t h x v #.v #.v #.#.v v %.%.-.%.%.%.%.%.%.%.%.*.*.x @.#.$.q UXUXUX",
"UX x W.Q.Q.Q.!.!./.!./.!./.!.(.gXI 8 wXiX5XkX}.%X%X.X.X.X.X.X.X#X%X.X.X.X%X$X$XzXmXfXc.# X ZXQ z <.V.G.P.P.G.fXW X | AX<Xf.B.'.'.'.'.'.'.'.{.n.'.n.'.n.'.n.n.n.n.n.'.n.n.n.n.n.M.7XfXAX8 X.} j #.,.7.q.q.q.7.4XqX # +.tXk.j.a.f.f.d.B.d.d.d.d.d.d.f.f.i.d.d.i.d.i.i.i.d.a.d.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.s.a.a.j.<XtXqX4 _ 9Xz.N k v v #.v #.v v v #.3.%.%.%.-.%.-.%.%.%.%.*.*.@.@.@.$.> UXUXUX",
"UXo v W.W.W.Q././.!.!.!././.!.`.GXI 9 ` qXeXtXtXuXuXuXtXSXuXuXuXuXuXyXSXtXtXtX0XO.Y $ X +.Q x <.V.D.P.P.G.sXW X Y c.wXeXtXtXtXtXtXtXtXtXtXSXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXeXAX| 7 X.} f v ,.6.q.q.q.7.<XwX 4 Y qXwXwXeXeXtXeXeXtXeXeXeXeXeXeXeXeX0XAX0XeXeXtXeXeXeXeXeXeX0XeXwXeXeXAXeXeXeXeXeXeXeXwXwXwXc._ 4 J ZXAXp.v v v #.v v v #.-.-.-.%.%.%.%.*.%.M *.%.M *.@.@.#.#.> o UXUXUX",
"UX v W.Q.Q.!././.!./.!./.!./.`.GXI o $ $ 4 4 5 5 5 5 4 5 5 5 5 5 5 4 4 $ # # c.Q x <.V.S.P.I.D.sX_ X $ 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 # X./ y v ,.6.q.q.q.7.4XqXX # # 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 $ # o $ ` wXpXu.v v #.v v %.%.%.%.%.-.m %.%.%.*.*.*.%.*.x @.#.#.> o UXUXUX",
"UX n Q.Q.Q.!.!.!.!.!.!.!.!.!.~.gXU # c.Q x ,.V.S.P.P.D.gX] c./ y x :.7.q.q.q.9.4XZXX 8 O.eX<XM v v %.-.%.%.%.%.%.-.m m *.%.*.*.*.*.x @.#.#.q UXUXUX",
"UXo v Q.Q.Q.!.!.!././.!.!.!.!.~.jX{ 4 c.A x <.V.S.G.P.D.hXO. # ZXR y x :.6.7.q.q.7.f.wX$ # I ZXtXh.%.%.%.-.%.m -.m %.m m *.M M *.*.n x *.@.*.> o UXUXUX",
"UXo x Q.Q.Q.!.!./.!./.!.!.!./.~.lXeX4 I AXg x 6.V.G.G.P.G.3XeX5 G c.B y x :.6.7.q.9.7.t.tXH $ ' wXSXa.-.%.%.*.-.*.*.M *.*.m m *.*.n x @.@.*., UXUXUX",
"UX v W.Q.Q.!.!.!.!.!.!.!.!.!.~.K.dX{ X 8 +.^ t x 6.V.S.P.P.D.A.dXO.# 5 +.| , y v ,.6.9.q.q.7.<.8XZX5 8 +.SXz.D %.*.*.*.*.*.*.m m n n n *.x x @.$.< UXUXUX",
"UX v Q.Q.Q.!.!.!.!.!.!./.!.!.~.I.N.uXX.5 # I c.| , y #.7.V.S.P.P.G.C.B.iX+.7 X G +.+.2 q f v ,.6.q.q.9.9.6.1.yXqXJ X o o X $ I AXSXk.-.*.M *.M *.n n n m n n x @.@.@.> o UXUXUX",
"UX x Q.Q.Q.Q.!.!.!.!.!.!.!.!.~.U.Z.d.uXZX| H 5 # X 4 G Y c.qX! < q j =.q.Z.G.G.G.G.Z.w.i.rXAXX.I 7 # o o $ 8 I X.+.{ 2 : e j #.<.6.9.9.q.7.6.:.-.z.wX+.I 8 $ X X # X X X 4 ] SXSXF M n *.n n m n n *.b x v @.@.> o UXUXUX",
"UX n Q.Q.Q.Q.!.!.!.!.!.!.!.Q.W.T.G.w.1.p.9XwXc.qXc.| ' _ _ _ _ _ ] ] ] ] ] _ _ ] ] _ ] _ ] _ _ ] _ ] ] ] _ _ _ _ ] _ ] ] ] _ _ _ _ _ _ _ _ _ ] ] _ ] _ ] _ _ _ _ ' ' O.+.ZXc.c.E 3 = , y x <.w.Z.G.P.P.G.S.V.6.#.D z.qXc.c.c.| { ] ] _ ] _ _ ] ] _ _ ] ] ] _ _ _ ] _ _ ] _ _ ] ] ] _ _ _ _ _ _ ] _ _ ] _ _ _ _ _ ] _ _ ] _ _ ] ] _ _ _ _ _ ] ] ] _ ] _ _ _ ] _ _ _ ' X.+.+.+.qX] 6 & * , f z =.<.7.q.q.q.7.6.,.#.k S / wXc.c.c.X.{ ] _ ] ] _ _ ] _ _ _ _ _ _ _ _ _ _ ] ] _ _ _ _ _ ] _ _ _ ] ] ] _ _ ] _ ] _ _ _ _ ] ] ] _ _ _ _ ] _ Y Y I I 8 4 X X # X X X X X 7 ZXc.*.b *.*.m M m n n x x v @.@.> UXUXUX",
"UXo v Q.Q.Q.!.!.!.!.!.!.!.!.!.!.E.P.Z.9.$.k g Z P ! [ [ .| .| o.| | | | | | o.| | | | .| ...| | | | o.| | | o.| | .| | | X.| | X. .o.| | | | | | | | | | | | { ' ^ P V 6 & * : q y x :.q.C.S.G.P.G.G.D.C.q.,.x h p B P E [ ' | | | | | | | | | | | | ..| | | | | | | | | | | ..| | | | | | | | | | | | | | { | | | | | | | | | | | | | | | | | | | | | | | X.| ` ~ U J 6 = + & : q y j #.,.6.7.q.7.9.9.7.6.=.v h e r s K P ] ` | | | | | | | | | { { | | | | | | | | { | | | | | { | | { { { | | | { { | | { | | { | { | | | { | O.c.c.+.+.+.` # X X X X # X # X X # J SXD N c b n b b n n n x x @.@.> o UXUXUX",
"UX v W.Q.Q.Q.!.!.!.!.!.!.!.!.Q.W.T.P.C.7.:.x u t e q > : : : : * : : * : : * : : : * : * * * * * : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * : : > , w y h x >.9.V.Z.G.P.P.G.G.G.Z.V.9.>.v j t q > > * * * * & * * & * & & & * & & * & & * * & * & & & & & & & & & & & & & & % & & & & & % & & % % % % & & & % % % % % % & & % & % % & % & % & * * * > , e f k @.>.<.7.7.9.7.9.9.7.6.,.#.x h t q > : * & & + + + % + + + + + % + + % + + + + + + @ + + % + @ @ + @ + @ @ + + + @ @ + @ + + @ @ @ @ @ @ @ @ @ @ + = 0 L ZXI o X # # X X X X X X X $ AXl.a N n n b n b b b x x @.@.> o UXUXUX",
"UXUXn W.Q.Q.!.!.!.!.!.!.!.!.!.!.Q.E.T.H.C.q.<.=.x k j u a u y y y y y y y y y y y y y y y y y y y y y y y y y y t y t y t y y t t t y t t y t y t t t t t t t e t t t t t y u h k x $.,.q.V.Z.G.G.G.P.G.G.G.S.Z.V.q.6.#.@.j h y y t e e e e q e q e q e q e q q e q q q q q q q e q q q q q q q q q q q q q q q q q q q q q , q q q , , , q , q , , , , , , , , , , , q , q q t y f h x @.,.<.6.7.q.7.q.9.9.7.6.6.>.=.v k f y e q , , , > > > > > > : > : > : > > : : : > : : : : : : : : : : : : : : * : : * : : * : * : : * : : * : : * ; * * & ~ +. X X X X X X X X # X X X # ZXz.a l c b n b n n b x x v @.< UXUXUX",
"UXUXx W.Q.Q.!.!.Q.!.!.!.!.Q.!.!.Q.W.E.T.P.S.C.w.7.<.>.=.$.$.*.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.v v @.v v v @.v v v v v v v v x v x v x v x v x x x x v v @.#.=.>.,.7.e.C.Z.S.G.G.G.G.G.G.G.G.S.Z.V.w.9.,.>.#.@.x x z k k k k k k k z k j k j j j j j j j j j j j j j j j j j j j a a j j j a j h h j a j a j a h h h h h h h a f h h f f f f f u h u h h h j j z x #.=.,.<.7.9.q.9.9.9.7.7.9.7.6.6.,.=.@.v k j h y y y y y y t t t y y t t t t t t t t t t e t t e t e t e e t e e e e e e e e e e e e e e e q w e w w w q q q > R qX$ X X X X # X X X X X X X X ZXz.i a c b b M b b c x x x @.: UXUXUX",
"UXUXx W.Q.Q.Q.!.!.!.!.!.!.!.Q.!.Q.Q.Q.E.E.U.P.D.Z.C.g.e.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.7.7.9.7.9.9.9.7.7.9.7.7.7.7.7.7.7.6.6.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.q.w.V.C.Z.S.G.G.G.G.P.P.G.P.G.G.G.S.S.Z.g.w.q.7.6.<.,.,.,.,.>.>.>.>.=.=.=.>.=.>.=.=.=.=.:.=.$.=.$.=.$.$.$.$.$.#.$.=.$.$.#.#.#.$.#.#.#.#.*.#.@.#.#.#.@.@.@.@.@.@.@.@.@.v @.@.@.v v @.v v v v @.@.$.=.:.,.6.6.7.7.9.9.9.9.9.9.7.7.7.6.6.<.<.,.=.$.v @.x x z z z z k k x k k k k k k j j k j j j j j j j j j j j j h j h j h j h h h h h h h u h h h f h h f u f f y t A qX$ X # X X # X X X X X X X X # ZX/ r g l c M n c *.c z x @.x : o UXUXUX",
"UXUXx E.Q.Q.Q.!.!.!.!.!.!.!.Q.!.Q.Q.Q.Q.W.W.E.U.U.P.P.G.H.G.G.G.D.H.H.G.D.D.D.S.D.D.S.S.D.S.S.D.S.S.S.S.Z.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.C.C.Z.Z.Z.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.C.C.Z.S.S.S.G.G.P.G.P.G.G.G.G.G.G.G.D.D.S.S.S.Z.C.g.e.e.w.w.q.q.w.w.q.w.w.q.q.q.w.q.q.q.q.q.9.q.9.9.9.9.9.9.7.7.7.7.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.<.6.7.7.9.9.9.9.7.9.9.9.7.7.7.7.7.7.6.6.,.<.,.,.:.=.$.$.=.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.v @.@.v v v v @.v v x v v x x x x x x x x x x x x z x z x z k k j D qX4 X # # X X X # X X X # X X X X ZX/ r i l c n c n c z z x x v : X UXUXUX",
"UXUXk T.Q.Q.Q.!.!.!.Q.!.Q.!.!.Q.Q.Q.Q.Q.Q.!.W.W.W.E.E.T.E.T.T.T.E.T.T.E.T.T.T.U.U.U.U.U.U.I.U.U.I.U.I.U.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.G.D.G.G.G.G.G.S.D.D.D.G.G.G.G.G.G.P.G.P.G.P.G.G.G.G.D.D.G.D.S.S.S.S.Z.Z.C.C.C.C.C.V.C.V.g.g.C.g.g.g.g.g.g.g.g.g.e.g.g.e.e.g.e.e.e.e.e.e.e.w.e.w.w.q.w.q.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.q.7.7.q.9.9.7.7.7.7.7.7.7.7.7.7.q.7.9.9.9.9.9.7.7.7.7.7.7.7.7.6.7.6.6.<.<.<.<.,.,.,.>.,.>.,.>.>.,.>.>.>.:.=.=.=.=.=.=.=.=.=.=.=.$.$.$.$.=.#.$.$.#.$.#.$.#.#.#.#.#.#.@.@.@.v @.@.v @.v v v x x D qX4 X X X X X X X X X X X X X X X X ZX` w i l l b c b *.z z x v x * UXUXUX",
"UXUXj U.Q.Q.Q.!.!.!.Q.Q.Q.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.Q.W.Q.W.Q.W.W.W.E.W.E.W.W.T.T.W.T.E.T.E.E.T.E.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.I.P.P.P.G.P.P.P.P.G.G.G.G.P.G.P.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.g.C.g.C.g.C.g.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.e.e.w.e.w.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.9.q.q.q.9.9.9.9.9.7.7.9.7.9.7.7.7.6.6.7.6.6.6.6.6.<.6.<.6.<.<.,.<.<.,.<.,.,.,.,.,.,.,.=.,.=.,.=.=.>.:.>.=.:.:.:.=.=.:.:.$.:.$.$.$.$.$.#.$.$.$.$.#.#.#.#.#.#.#.@.@.@.v p.wX4 X X X X X X X X X X X X X # X X X ZX[ w i l l c *.c k x x x v k * UXUXUX",
"UXUXu G.Q.Q.Q.Q.!.Q.!.!.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.E.T.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.D.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.g.C.g.g.C.C.g.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.q.q.7.q.9.9.7.9.9.7.9.7.7.7.7.6.7.6.6.6.6.6.6.6.6.<.6.<.<.6.,.<.<.<.,.,.,.,.,.,.>.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.:.:.>.$.:.=.$.$.>.$.$.$.#.$.#.$.#.$.#.#.#.#.#.#.#.v p.9X4 o X # X X # # X X X X X X X X X X X X ZX[ < i a c c l c c k k z v l & o UXUXUX",
"UXUXy S.Q.Q.Q.!.!.!.Q.!.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.T.W.E.E.E.W.E.E.E.E.T.T.E.T.T.T.T.T.U.T.U.T.U.U.U.I.U.U.U.I.U.U.I.I.I.I.P.I.P.P.P.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.D.D.D.G.S.G.S.D.D.D.S.D.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.V.C.C.C.g.C.g.C.C.g.C.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.9.9.q.9.7.q.7.9.9.9.9.7.9.6.7.6.7.7.7.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.,.=.=.>.>.>.>.>.>.>.>.:.>.=.:.>.:.$.$.=.$.$.$.$.$.$.#.$.#.$.#.#.#.#.#.@.@.@.@.p.AX4 o X # X X X X X X # X X X X X X X X X X ZX` < i g l c c c z z x z v a & UXUXUX",
"UXUXw Z.Q.Q.Q.Q.Q.!.!.!.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.E.W.W.W.E.W.W.E.T.E.E.E.T.E.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.G.D.G.D.G.D.D.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.V.C.V.V.g.C.g.C.g.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.9.q.9.9.9.9.7.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.<.6.6.6.<.6.,.<.6.<.<.<.,.,.<.,.,.>.,.,.,.>.,.=.,.>.,.>.>.>.>.:.>.=.:.=.=.$.$.:.$.$.$.$.$.$.$.$.#.$.$.#.#.#.#.#.#.#.#.#.@.v p.9X4 X X X X X X X X X X X X X X X X X X X X ZX` w i f l c z z z k z k v a + X UXUXUX",
"UXUX> e.Q.Q.Q.!.!.Q.!.Q.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.T.E.E.E.T.T.T.T.T.T.U.T.T.U.U.T.U.U.U.U.I.U.I.U.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.D.D.G.G.S.D.S.S.S.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.V.V.C.g.C.V.V.V.g.g.g.C.g.g.g.g.e.g.g.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.7.7.9.7.7.7.7.7.9.6.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.>.>.>.>.:.>.>.$.:.=.$.$.>.$.$.$.$.$.$.$.#.#.#.#.#.#.#.@.#.#.@.@.@.@.p.wX4 X X X X # X X X X X X X X X X X X X X X X X ZX] < i f l c c c k k k x x u O . UXUXUX",
"UXUX+ 9.Q.Q.Q.Q.Q.!.Q.!.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.I.I.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.G.G.D.D.G.D.S.S.D.S.G.S.G.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.e.w.w.q.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.9.9.9.9.9.9.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.$.>.$.>.$.$.>.$.$.:.$.$.$.$.#.$.$.#.#.$.#.$.#.#.#.#.#.@.@.@.@.@.@.p.ZX$ X X X # X X X X X X X X X X X X X X X X X X X ZX[ , i f l k c c k k x k x t . o UXUXUX",
"UXUXX <.Q.Q.Q.Q.!.Q.!.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.U.T.U.T.U.U.U.U.U.U.U.I.I.U.U.I.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.P.P.G.G.G.G.G.G.D.G.D.G.D.D.S.G.S.G.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.V.C.C.g.C.V.C.g.C.g.V.g.V.g.g.V.g.g.g.g.g.g.e.g.e.e.e.e.e.e.w.e.w.w.w.b.w.w.w.w.q.w.q.q.q.q.q.9.q.q.9.9.9.9.9.9.9.9.9.7.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.$.:.$.$.>.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.p.wX4 X X X X X X X X X X X X X X X X X X X X X X X X ZX[ < r f l c k c k k k x v w o X UXUXUX",
"UXUX #.Q.Q.Q.Q.Q.!.Q.!.!.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.W.E.W.E.W.E.E.E.E.T.E.E.T.T.T.T.T.U.T.T.U.T.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.P.P.P.P.P.P.P.P.G.G.G.G.G.G.D.G.G.D.D.G.S.D.D.D.S.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.e.g.g.e.e.g.e.w.e.w.e.w.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.>.,.,.,.>.>.>.>.>.>.>.>.:.>.$.>.$.>.$.$.>.$.:.$.$.$.$.#.$.$.$.#.$.$.#.#.#.#.#.@.@.@.@.@.@.@.@.v p.wX4 X X X X X X X X X X # X X X X X X X X X X X X c.` , p f l l c c k k k x x > UXUXUX",
"UXUXUXk U.Q.Q.Q.Q.!.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.T.U.U.T.U.U.U.U.U.I.U.I.I.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.G.D.D.D.G.D.G.S.S.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.C.V.V.V.V.V.g.V.V.V.g.V.g.V.g.g.g.g.g.e.e.g.e.e.e.e.e.e.w.e.w.e.w.w.q.w.w.w.q.9.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.9.9.9.7.9.7.7.7.6.7.7.6.6.6.6.6.<.6.<.6.6.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.>.,.>.>.,.>.>.>.>.>.>.>.=.>.$.>.$.$.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.v @.@.@.@.@.@.@.@.v p.wX4 X X X X X # X X X X # X X X X X X X X X X X X X X ZX^ < i a l j k k k k k z j * UXUXUX",
"UXUXUXy S.Q.Q.Q.Q.Q.Q.!.Q.!.Q.!.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.I.U.U.I.I.I.I.I.P.I.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.D.G.G.D.S.D.S.D.G.S.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.C.V.V.C.V.V.C.g.V.g.g.g.g.g.g.e.g.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.b.q.q.q.b.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.7.7.9.6.9.6.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.,.,.<.,.,.>.,.,.,.,.,.,.,.>.>.>.>.>.>.>.$.>.$.>.>.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.@.@.@.@.@.@.x @.x p.wX$ o X # X X X X X X X X X X X X X X X X X X X X X o o X qX^ , t g l k k k j k k z a % X UXUXUX",
"UXUXUX> V.Q.Q.Q.Q.!.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.E.W.W.E.E.W.E.E.E.E.T.E.E.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.G.D.G.D.D.D.S.D.D.S.S.S.S.S.S.S.S.Z.Z.S.S.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.V.C.C.C.V.C.V.V.V.V.V.V.g.g.g.g.g.g.g.g.g.e.e.e.g.e.e.e.w.e.e.w.e.w.w.w.w.w.q.q.q.q.q.q.9.q.q.q.9.9.9.9.9.9.9.9.9.9.9.6.9.7.9.6.6.6.6.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.>.>.:.,.:.>.>.>.>.>.>.>.>.>.:.>.>.>.$.$.$.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.v @.@.@.v @.x @.x v p.c.4 X X X X X X X X X X X X X X X X X X X X X X X X X o ZX` < r i j l k j j k k x y O o X UXUXUX",
"UXUXUX@ 9.Q.Q.Q.Q.Q.!.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.W.W.Q.W.W.W.W.W.W.E.E.W.E.E.E.E.T.E.E.E.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.U.I.U.U.P.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.G.G.G.P.G.G.G.G.D.D.G.D.D.D.D.D.D.S.D.D.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.Z.Z.C.C.C.C.C.C.C.V.V.V.V.V.C.V.V.V.V.g.V.V.g.g.g.g.g.e.e.g.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.9.b.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.7.9.6.9.6.9.6.7.7.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.>.,.,.>.>.,.:.,.:.>.>.>.:.>.>.$.$.>.$.$.$.:.$.$.$.$.#.$.$.#.$.#.$.#.#.#.#.#.#.#.v #.v #.@.@.@.@.@.@.@.@.v p.wX4 o X X X # X X X X X X X X X X X X X X X X X X X X X X X X qX` < i a j k k j j k k k e . X UXUXUX",
"UXUXUX #.W.Q.Q.Q.Q.!.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.W.W.W.E.E.W.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.P.I.U.I.I.U.P.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.D.D.G.D.D.D.D.S.D.S.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.C.V.C.V.V.g.V.V.V.g.V.g.g.g.e.g.g.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.b.9.9.9.9.9.7.9.9.9.9.6.9.7.6.7.7.6.7.6.6.6.<.6.6.6.<.<.6.<.<.<.<.<.,.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.$.>.:.$.$.:.$.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.#.#.v #.v @.v @.v @.v @.x x p.ZX4 X X # X X X X X X X X X X X X X X X X X X X X X X X X X ZX_ < e u l l k j j k k z > o X UXUXUXUX",
"UXUXUXo h I.Q.Q.Q.Q.Q.Q.Q.!.Q.Q.Q.Q.W.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.T.E.T.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.I.P.I.P.P.P.P.G.P.G.P.G.P.G.P.G.G.G.G.D.D.G.D.D.S.D.S.D.S.D.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.V.C.C.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.g.e.g.e.g.e.e.e.w.e.e.w.w.e.e.w.w.w.q.w.q.w.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.6.6.9.9.6.9.6.6.7.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.$.>.>.>.$.>.>.$.>.$.$.$.$.$.$.$.#.$.#.$.#.$.#.#.#.$.#.#.v #.v #.v #.@.v v @.@.v @.x x p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < i i a j a k k k z a & UXUXUXUX",
"UXUXUXUXw C.Q.Q.Q.Q.!.Q.Q.Q.Q.!.Q.W.Q.W.Q.W.W.W.E.W.W.W.E.W.E.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.U.U.U.U.U.U.U.I.U.U.P.U.I.I.I.I.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.G.D.G.S.D.D.D.D.D.D.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.V.V.g.g.g.g.g.g.g.e.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.9.9.9.6.9.6.9.6.6.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.,.<.,.<.,.<.,.,.,.,.>.,.>.>.>.>.,.>.>.>.>.>.>.$.>.$.>.$.$.=.$.$.$.$.$.$.#.$.#.$.$.$.#.#.#.#.#.#.v v v #.#.v #.#.v v @.v @.v @.x @.x p.AX5 X X X X X # X X X X X X X X X X X X X X X X X X X X X X X X ZX` < r i l k k a j k z y @ UXUXUXUX",
"UXUXUXUX+ q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.W.E.E.E.E.E.E.E.E.T.T.E.T.T.T.U.T.T.T.U.U.U.U.U.U.U.I.U.I.P.U.U.P.I.I.I.P.I.P.I.P.P.P.P.G.G.P.P.G.P.G.G.G.G.G.D.D.D.G.D.D.D.D.S.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.V.V.C.V.C.C.V.C.V.V.V.V.V.g.g.g.V.g.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.7.9.9.9.7.6.9.7.6.7.7.6.7.7.6.6.6.6.<.<.6.6.<.6.<.<.<.<.<.,.<.,.,.,.,.>.,.,.,.>.,.,.>.>.>.>.>.>.>.>.$.>.:.:.:.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.#.v #.v #.v @.v @.v v v v x m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X ZX^ < r u a k a j j j j t o X X UXUXUXUX",
"UXUXUXUX v W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.E.W.W.W.W.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.P.I.I.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.G.G.D.G.D.D.S.D.S.D.D.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.V.V.V.C.g.V.V.V.g.g.g.g.g.g.g.e.g.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.q.q.w.q.q.q.9.9.q.q.q.9.9.9.9.9.9.9.7.9.7.7.6.9.6.9.6.9.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.>.$.>.>.$.>.$.:.$.$.$.$.$.#.$.#.$.$.#.#.#.#.v v #.#.#.#.v #.#.v #.v v @.v @.v v v v *.m h.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX^ < r y l a j j j k k : X UXUXUXUX",
"UXUXUXUXo y H.Q.Q.Q.Q.Q.Q.Q.Q.W.W.W.W.W.W.W.W.E.E.E.E.E.E.E.E.E.E.E.T.T.T.E.T.T.T.T.T.U.U.U.U.U.U.U.U.U.U.I.I.I.U.I.I.I.I.P.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.D.G.S.G.S.D.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.V.C.V.C.V.C.V.V.V.V.V.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.b.9.9.9.9.9.9.9.9.9.9.9.9.9.7.7.9.6.9.6.6.6.6.6.6.6.6.<.<.6.<.6.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.,.,.>.,.>.>.>.>.>.>.>.>.:.$.>.:.$.$.$.$.:.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.#.v v #.v v v v v #.v v v v v n %.*.m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X o o qX` > r u j a a j j j u % o X UXUXUXUX",
"UXUXUXUXUX* e.Q.Q.Q.Q.Q.W.Q.W.W.W.W.E.W.W.W.E.W.W.E.W.E.E.E.E.E.T.T.E.T.T.T.T.T.T.U.T.T.U.U.U.U.P.U.U.P.U.I.I.I.P.I.I.I.P.I.P.P.P.G.P.G.G.P.P.G.G.G.P.G.G.G.G.D.D.G.D.D.S.G.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.C.g.V.V.g.V.g.V.V.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.w.q.w.w.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.7.9.6.7.7.6.6.6.7.6.6.6.6.6.<.6.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.>.,.>.,.>.>.,.>.,.>.>.>.>.$.>.>.:.:.>.$.>.$.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.#.#.#.v #.v v v v v @.v v x n @.%.m m h.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < r i a a a j j k e . X UXUXUXUXUX",
"UXUXUXUXUXo $.W.Q.Q.Q.W.Q.Q.W.W.W.W.W.W.W.E.W.E.E.E.E.E.E.E.T.E.T.E.T.T.T.T.T.U.T.U.U.U.U.U.U.U.U.U.U.U.I.I.U.I.I.I.P.I.P.P.P.I.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.G.G.S.G.S.D.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.C.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.w.e.w.e.w.w.w.w.q.q.q.q.q.q.9.q.q.9.q.9.q.q.9.9.9.9.7.9.7.7.7.7.7.7.6.9.7.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.<.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.=.$.>.:.$.>.$.:.$.$.$.#.$.$.$.#.$.#.$.$.#.#.#.#.#.#.#.v v #.v v #.v v v #.v #.v v v v *.%.*.*.m m p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X ZX^ > w i a a j j j k > X UXUXUXUXUX",
"UXUXUXUXUXX y H.Q.Q.Q.W.W.Q.W.W.W.E.W.W.W.E.E.E.W.E.E.E.E.E.E.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.I.I.I.P.P.I.P.P.P.P.P.G.P.P.G.G.P.G.G.D.G.D.D.G.D.D.D.S.D.D.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.V.C.C.V.V.V.V.V.g.g.V.g.g.g.e.V.e.e.V.e.e.e.e.w.e.e.e.w.e.w.w.w.q.w.q.w.q.q.q.q.9.q.9.q.q.9.9.9.9.9.9.9.9.9.7.7.9.7.7.6.7.7.7.6.7.6.6.6.6.6.<.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.>.,.>.,.>.,.>.>.>.>.>.>.>.:.>.=.$.$.$.>.$.:.$.=.$.#.$.$.$.#.$.#.$.#.#.#.#.#.#.@.@.@.@.@.@.@.v @.v @.@.@.v v v v v %.m m *.m m n p.AX5 X X X X X X X X X X X X X X X X X X X X X X X X X ZX~ < w y a a a j k a % X UXUXUXUXUX",
"UXUXUXUXUXUX& q.W.Q.W.Q.W.W.W.W.W.W.W.E.E.E.W.E.E.E.E.T.E.T.E.T.T.T.T.T.T.U.U.T.T.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.C.Z.Z.C.C.C.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.g.g.g.V.g.g.g.g.e.e.V.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.q.9.q.9.9.7.9.7.9.9.7.7.7.7.7.6.6.6.6.6.6.6.<.6.<.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.>.>.>.>.>.>.>.>.>.=.:.:.>.>.$.$.$.:.$.=.#.=.#.$.#.$.$.#.#.#.#.#.#.@.#.@.#.@.@.@.@.v @.v @.v v v v v v *.%.%.m %.m *.m n p.AX8 X X X X X X X X X X X X X X X X X X X X X X X # ZXP < r y a a a j j e . o X UXUXUXUXUX",
"UXUXUXUXUXUX #.T.Q.Q.W.W.W.W.W.W.W.E.E.E.W.E.E.E.E.E.E.T.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.I.U.I.I.U.I.I.I.P.I.P.P.P.P.P.P.P.G.G.P.P.G.G.G.G.G.G.G.D.D.G.D.D.S.D.D.D.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.g.g.V.g.g.g.g.e.e.e.e.e.e.e.w.w.w.e.e.w.w.e.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.9.9.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.,.<.,.,.,.>.,.,.,.>.>.,.>.>.,.>.>.>.>.>.>.$.$.>.$.$.=.>.$.$.$.$.=.$.=.#.#.#.#.#.#.#.#.#.#.@.@.#.@.@.@.@.@.v @.v @.v v v v v v *.*.%.m %.*.m m m n M SXW X X X X X X X X X X o X X X X X X X X X X X X X X 8 ZXV > w y a a j j j : o o UXUXUXUXUXUX",
"UXUXUXUXUXUXo e C.Q.W.W.W.W.W.T.E.E.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.T.U.U.T.U.U.U.I.U.U.U.U.I.U.U.I.I.P.I.I.I.P.P.P.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.D.D.G.S.D.D.D.S.D.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.g.V.g.g.V.g.g.g.e.g.g.e.e.b.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.9.9.9.9.9.9.9.9.9.6.6.6.7.7.6.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.=.>.=.>.$.>.>.>.$.$.$.$.$.$.$.#.$.#.=.$.#.$.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v @.v v @.v v @.%.%.*.*.m *.m m m m *.b z.ZX5 X X X X X X X X X X X X X X X X X X X $ X.+.- > q y u a j j y % o UXUXUXUXUXUX",
"UXUXUXUXUXUXUX. >.Q.W.W.W.W.W.W.E.W.E.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.U.I.U.I.I.I.I.P.I.I.P.I.P.P.P.P.P.P.P.P.G.P.G.G.G.G.G.G.G.D.D.G.G.D.G.D.S.D.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.V.C.C.V.C.V.V.V.V.V.g.g.V.g.g.g.e.g.g.e.e.g.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.9.9.9.9.9.9.6.9.6.9.6.7.7.6.6.7.6.6.6.6.6.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.,.,.:.,.>.>.,.>.>.>.>.>.>.>.>.>.$.>.$.$.$.$.$.$.$.$.$.$.=.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v v @.v v v v v *.*.%.*.%.m m m m m n n n c N tXZXG X X X X X X o o X X X X X X X X o o X 5 X.ZX9 * > q y a a j j > o X UXUXUXUXUXUX",
"UXUXUXUXUXUXUXo a D.W.W.W.E.W.E.E.E.E.E.E.E.E.T.T.T.T.T.T.T.T.T.U.T.T.U.U.U.U.U.U.U.U.I.U.I.U.I.I.U.P.I.P.P.I.P.P.P.P.G.G.G.P.G.G.G.G.G.G.G.D.G.D.G.S.D.S.D.D.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.Z.C.C.C.C.V.C.C.V.g.C.g.V.V.V.V.V.g.V.g.g.g.g.g.g.e.g.e.e.b.e.e.e.e.e.w.w.e.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.6.9.7.9.6.7.7.6.6.6.6.6.6.<.6.<.6.<.6.<.6.<.<.<.<.,.<.,.,.,.>.,.,.>.,.,.:.>.>.>.>.>.>.>.>.>.$.$.>.:.$.>.$.$.>.$.$.$.$.$.$.#.$.$.#.#.#.#.#.#.#.@.#.@.@.@.@.@.v @.v @.v v @.v v #.%.-.%.m m m *.m m v m n n b M l S x.ZXX.G $ X X X X X X X X X X o X X X X $ 9 ' ZX+.9 % ; > e y a h j y & o X UXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUX* 9.W.W.W.W.E.W.W.E.E.E.E.E.E.E.T.T.T.T.T.T.U.T.T.U.T.U.U.U.U.U.I.I.U.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.P.P.P.G.P.G.G.G.G.G.G.S.G.G.G.S.D.D.S.D.S.S.S.S.S.S.S.S.Z.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.V.C.V.C.V.C.C.g.C.V.V.V.g.g.g.g.g.g.g.g.g.e.e.g.e.e.e.w.e.e.w.e.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.7.q.9.q.9.9.9.9.9.9.9.9.6.9.6.9.6.9.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.:.>.>.>.$.>.:.:.$.=.:.:.$.$.$.$.$.#.$.#.#.#.$.#.#.#.#.#.@.#.@.@.@.@.@.v @.v @.@.v v v v %.*.%.m m #.m m m n n n n n b b b l a g R qXZXZXc.{ Y H H H H H H H H G H H G H H Y ' X.ZXZXc.Y 1 @ = > w e y a j j w o X X UXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUX j P.W.W.T.W.E.E.E.E.E.E.T.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.I.P.I.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.G.G.S.G.S.D.S.D.D.S.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.g.C.C.V.C.g.C.V.V.g.V.g.g.V.V.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.q.q.7.9.q.9.9.9.9.9.9.7.9.7.7.7.6.7.6.6.6.6.6.6.6.6.6.6.6.<.<.6.<.<.,.<.,.,.,.<.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.$.>.$.>.$.:.$.=.$.$.$.$.#.$.$.#.$.#.=.#.#.#.#.#.#.@.#.#.@.@.@.@.@.v @.v v @.v v v #.m %.%.%.m *.m m m m n n n b n n n b c l i r w s L ] X.qXZXZXZXZXZXZXZXZXZXZXZXZXZXZXc.X._ H 6 # X + = ; > q t a a j a & X UXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUX& q.W.W.E.E.W.E.E.E.E.E.T.T.T.T.T.T.U.U.T.U.U.U.U.U.U.I.U.I.U.I.U.I.I.I.P.I.P.P.P.I.P.P.P.P.P.G.P.G.G.P.G.G.G.G.G.G.S.D.G.D.D.S.D.D.S.D.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.V.C.V.C.g.V.V.V.V.V.g.V.V.g.e.V.g.e.e.e.g.e.e.e.e.w.e.w.e.e.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.9.9.q.9.9.q.9.9.9.9.9.9.6.9.7.7.6.7.6.7.6.7.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.,.<.,.,.,.,.>.,.>.,.>.>.>.>.>.>.,.>.>.>.>.$.>.>.:.>.>.$.$.:.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v v @.v v v #.%.%.*.%.m m m m m m v n n n n n c m b b c l a i r < ; - = = = 1 1 1 4 $ 1 1 1 $ 1 $ $ = @ @ @ @ + + % = : q q t u a a h q . X UXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUX z U.W.W.W.T.E.E.T.E.T.T.T.T.T.T.T.U.T.U.T.U.U.U.U.U.I.U.U.I.I.I.I.I.I.I.I.I.P.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.D.G.G.G.D.D.D.G.S.S.D.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.C.C.V.V.V.C.V.V.V.V.g.g.V.e.V.g.g.e.V.e.g.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.q.b.q.b.q.q.q.q.q.9.q.q.q.9.9.9.9.7.9.9.9.6.9.7.7.7.7.7.7.6.6.6.6.6.6.<.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.,.,.,.>.,.>.,.>.>.>.:.>.>.:.>.=.=.$.$.$.$.:.$.$.$.#.$.$.$.#.#.#.#.$.#.#.#.#.@.#.#.@.@.@.@.@.v @.v @.@.v @.v v -.m %.%.m *.m m m m m m n n n n n b b b b c c l u i p w < < ; - - - - = = = = % = & = = = = % = = - - : < q q e y u a j a * o X UXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUX- 9.W.E.W.E.E.E.E.T.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.U.I.U.I.I.I.I.I.P.I.P.P.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.D.D.G.G.S.G.G.S.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.Z.C.C.C.C.C.C.C.V.V.V.g.C.g.g.V.g.g.g.V.e.g.e.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.q.q.q.9.q.q.q.q.9.q.7.9.9.9.9.9.9.9.7.9.6.7.9.7.6.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.,.<.<.,.,.,.,.>.>.,.,.>.>.>.>.>.>.>.>.>.=.:.=.=.=.=.$.>.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.@.#.#.@.@.@.@.@.v @.v @.v v v @.%.*.%.*.m %.*.*.m m m n n n n n b m b n c b b c c l l a g i r r w < w < < > > < < > < > < < : : < > > < q w w e y u u a a j q O X UXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUX j D.W.E.E.E.E.E.T.T.T.T.T.T.U.T.U.U.U.U.U.U.U.I.U.I.I.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.D.G.D.D.G.S.G.S.S.S.D.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.C.g.V.C.V.C.V.V.V.V.V.g.g.g.g.g.g.e.V.e.e.V.e.e.e.e.e.e.e.w.b.w.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.q.9.9.9.9.7.9.7.9.7.6.7.7.6.7.6.6.6.6.6.6.6.<.6.<.6.<.<.<.<.<.,.<.,.,.,.,.>.,.,.,.,.,.>.,.>.>.>.>.>.=.=.=.>.:.>.$.=.$.$.$.>.$.$.$.$.$.#.$.#.#.$.$.#.#.#.#.#.#.@.@.@.@.@.@.@.@.v @.v @.@.*.%.%.*.m -.%.m m *.m n n n n b n n b b b c n b c c c c c c a a i i i r r i r r r w r r w w w w w r w r w r t t y y y u a a j y * o X o UXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUX& 6.W.E.E.E.E.T.T.T.T.U.T.U.U.U.U.U.U.U.U.U.U.I.U.I.U.I.I.I.I.P.P.P.P.P.P.P.P.G.P.G.P.G.P.G.G.G.G.D.G.D.G.D.D.D.S.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.g.C.C.V.V.V.C.g.V.g.V.g.g.V.g.g.g.g.g.e.e.e.e.e.e.e.e.w.w.e.w.e.w.w.w.w.q.b.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.9.9.7.7.9.7.7.7.7.7.7.6.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.>.>.>.>.,.>.>.>.>.>.>.=.:.=.=.$.=.=.=.$.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.@.#.@.@.@.@.v @.v @.v v @.*.%.%.m *.-.m m *.m m n n n n n n n b b b n c b c b c c c c c c l l a l l a l i i u i i i i i i y i i y i y i i i u u u u a a j a q o X UXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUX h Z.W.E.E.T.T.T.T.T.T.U.U.U.U.U.U.U.U.U.I.U.I.I.I.I.I.P.I.I.I.P.P.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.D.D.D.D.D.S.S.S.D.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.C.V.C.g.C.V.V.V.V.V.g.g.g.g.g.g.e.g.e.g.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.7.q.q.9.q.7.9.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.<.6.6.<.<.<.<.<.<.<.<.,.,.<.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.:.>.:.>.:.=.=.=.$.$.$.$.$.$.$.$.$.#.#.#.#.$.#.#.#.#.#.#.@.@.@.@.@.@.v @.v @.v @.*.%.*.%.%.%.%.*.m m %.m m n n n n n b b n n b n c c n c c c c c c k c k k a l a k a l a l a a a a a a f i a a u a a u u u u a a a a u & X X UXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXO #.T.T.E.T.E.T.T.T.T.U.T.U.U.U.U.U.U.U.U.I.I.I.I.I.I.I.P.I.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.G.G.D.D.D.G.D.G.D.D.S.S.S.S.S.S.S.Z.S.S.S.Z.S.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.V.C.V.C.V.V.V.C.V.V.V.g.g.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.q.q.q.7.9.7.9.9.9.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.,.,.,.,.,.,.>.>.,.>.,.,.>.>.>.>.>.>.>.:.:.>.:.=.=.=.=.=.$.=.$.$.$.$.$.$.#.$.$.#.$.#.#.#.#.#.v #.@.@.@.@.@.@.@.@.n v @.*.%.%.*.m %.m *.*.*.m v m m n n n n b n b b b b c c c c b c c c c c k k c l l l l a l j l l l a a l l a a a a a a l a l a a a a a a a > o o UXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXo w w.W.E.E.T.T.U.T.T.U.U.U.U.U.U.I.U.I.I.U.I.I.I.I.I.P.I.P.I.P.P.P.P.P.P.G.G.P.G.G.G.G.G.D.D.G.D.D.D.D.S.S.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.C.g.C.V.V.g.g.V.g.g.V.V.g.g.g.g.g.e.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.w.q.q.w.q.q.q.q.9.q.q.q.9.q.9.9.7.9.9.7.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.<.6.<.6.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.:.>.>.=.=.=.=.=.=.=.$.$.$.$.$.#.$.$.$.#.#.#.#.#.#.#.#.#.#.#.@.@.@.@.@.v v @.v @.@.%.%.%.%.%.*.%.m *.m m m m v n n n n b n b n b n c c c c c c c c c l k c l c k k c k k l l j l j l l a l l l a l l a a a a u u a a a h r @ o X UXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUX z I.E.T.T.T.T.U.U.U.U.U.U.U.I.U.I.I.U.I.I.U.P.P.I.P.P.P.P.P.P.P.G.P.P.G.G.G.G.G.G.G.D.G.D.D.D.D.D.D.S.G.S.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.C.V.V.V.V.V.V.V.V.g.g.V.e.V.g.e.e.g.e.e.g.e.e.e.e.e.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.9.q.9.9.9.9.9.9.9.7.7.7.7.6.7.6.6.7.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.,.<.,.,.,.,.>.,.>.,.,.>.,.>.>.>.>.>.>.>.>.=.>.:.>.$.$.>.$.>.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.@.@.@.v @.@.@.v @.@.@.%.%.%.%.%.%.*.*.*.*.*.*.*.M *.c *.M *.c *.*.b c c c *.c c c c c c c k c k c l k l k k k l j l j a l j a l a j l a a a a l f a a a a a h u : X UXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXo % ,.T.T.T.T.T.U.T.U.U.U.U.I.U.I.U.I.P.I.P.I.P.I.P.I.P.P.P.P.G.P.P.G.G.P.G.G.G.G.D.G.G.D.D.D.D.D.D.S.S.S.D.S.S.S.S.S.S.Z.Z.Z.S.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.V.V.g.g.V.V.g.g.g.e.V.e.g.e.e.e.e.w.e.w.e.w.e.w.w.w.w.w.w.b.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.7.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.$.>.$.>.$.>.$.$.$.$.$.$.$.#.$.#.$.#.#.#.$.#.#.#.@.#.v #.@.@.@.@.@.v x @.*.%.%.%.*.%.*.%.m m %.*.b *.*.c *.*.*.c *.c *.c c c c c c c c c c c c c l c k k k k k k k l k l l j j l l a l a a a a l f l a u u a u a a a a > o X X UXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUX r e.T.T.T.U.T.U.U.U.U.I.U.U.I.I.I.I.I.I.P.I.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.S.D.D.D.S.S.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.C.C.V.V.C.V.V.V.g.g.g.V.e.e.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.7.9.7.9.7.7.7.7.7.7.6.7.6.7.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.>.>.>.$.:.:.>.$.=.$.$.>.$.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.@.#.@.v @.@.@.@.@.%.%.%.%.%.%.%.m *.*.*.*.M b *.b *.*.c M c *.c c c *.c *.c c c c c c k c k c k k l k k l k l k l j j l j l a l l a l a a a l a a a u u a a a a e + o X UXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX k G.T.T.T.U.U.U.U.I.U.I.I.I.I.I.I.I.P.U.P.P.P.P.G.P.P.G.P.G.P.G.P.G.G.G.G.D.G.D.D.D.D.D.D.S.S.S.S.S.S.S.Z.S.Z.S.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.V.C.V.V.V.V.V.V.V.V.V.g.g.V.g.g.g.e.e.V.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.9.q.9.9.q.9.9.9.9.9.9.7.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.6.<.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.,.,.>.>.>.>.>.>.>.>.>.>.$.>.>.$.>.$.$.:.$.$.$.#.$.$.$.$.#.#.#.$.#.#.#.@.#.#.v #.@.#.v #.@.@.@.%.%.%.%.%.*.*.%.*.%.%.*.n *.*.*.M *.b M *.c *.c *.b c b b c c c c c c c c l k c l k k k l k k l l j l j l a l j a a a l a l a i a a u u a u a h y & o o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo + =.U.T.U.U.U.U.U.I.U.I.I.I.I.I.I.P.P.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.S.S.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.g.V.V.g.V.V.g.g.g.g.g.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.q.9.9.9.9.9.7.9.7.9.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.>.>.>.>.>.$.>.:.$.:.$.$.$.$.$.$.$.#.#.#.#.#.#.#.#.#.#.#.#.#.#.v #.v v *.*.%.%.%.%.%.%.%.%.%.*.M %.*.m n n n n b *.c c *.*.c c b b c c c c c c k c k l c c k k k k l k l j k l l a j a a l a a l a a l a a a a u u u u a a a > o o o UXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo * 7.T.U.T.U.U.U.U.I.I.I.I.I.P.P.P.P.P.P.P.P.G.P.G.P.G.G.G.G.G.D.G.D.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.Z.Z.C.C.C.V.C.C.V.V.V.V.V.V.V.V.V.g.g.g.g.e.V.e.g.e.e.e.e.e.e.e.e.e.e.e.e.e.w.w.w.w.w.q.q.w.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.7.9.9.9.7.7.7.7.7.6.7.6.7.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.,.<.,.,.,.,.,.>.>.,.>.>.>.,.,.>.>.>.>.>.>.>.$.$.:.$.:.$.$.:.$.$.$.$.$.#.#.$.#.$.#.$.#.#.#.#.#.@.v #.v v #.v @.%.%.%.%.%.*.%.%.*.%.*.*.*.m *.n n n n n n *.c *.c c c c c b c c c c c c k c c c k k k c l k k l k l j a j j l l a a a l l a l a a a u a u a u a u a a w . o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo y g.T.U.U.U.I.U.I.U.I.I.P.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.G.D.G.D.D.D.D.D.D.S.D.S.S.S.S.S.Z.S.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.C.V.V.V.C.V.V.V.V.V.V.g.V.g.g.g.e.g.e.g.e.V.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.9.9.9.9.9.9.7.7.7.7.7.7.7.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.:.$.>.$.>.>.$.$.$.$.$.$.#.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.#.#.v v #.v #.&.%.%.-.%.%.%.%.%.%.%.*.%.m m n *.n *.n n c c *.*.c c c c *.c c c c c c c k l c k c k k k l k l l j j j l l l a l l l a l a l a f a a a a u u u a a a e & X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo o k Z.T.U.U.U.I.I.I.I.P.I.P.P.P.P.P.P.P.P.G.G.P.G.G.G.G.G.G.G.G.D.D.D.D.D.S.D.D.S.S.S.S.S.S.S.Z.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.V.C.C.C.V.C.V.C.V.V.V.V.V.g.V.g.g.g.g.g.g.e.V.e.e.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.6.7.6.7.7.7.6.6.6.6.6.6.6.<.6.6.6.<.<.<.6.<.<.<.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.,.>.>.>.>.>.$.>.>.$.>.$.$.=.$.:.$.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.#.v @.@.v #.#.m -.%.&.%.%.%.%.*.%.%.*.m *.*.m n m n m n n n b n *.c c c *.c c c c c c c c c k c c k k l k k l k k l j l l j a j a j a a a l a f a f a f a u u u u u a a y & o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX . x G.U.U.I.U.U.I.P.I.I.P.P.P.P.P.G.P.P.G.P.G.G.G.G.G.G.G.D.D.D.D.D.D.S.D.D.S.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.g.g.V.g.V.g.g.g.g.e.e.g.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.w.w.q.q.q.q.q.9.q.9.q.9.q.9.9.9.9.9.9.7.9.7.7.7.7.7.7.7.6.6.7.6.6.6.<.6.<.6.<.6.<.<.<.<.<.<.,.,.<.,.,.>.,.,.>.,.,.>.,.>.>.>.>.>.>.>.$.>.>.>.$.:.>.$.$.$.$.$.$.$.$.#.$.#.#.#.$.#.#.#.#.#.@.#.@.@.v #.#.%.%.&.&.%.%.%.%.%.*.%.*.%.%.*.*.*.n n n n n M b c b *.b b b c c c *.c c c k k k l c k l k k k l k j l j l a l l a l a a l a l a a l a a f a u u u u u u a y : o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo + $.P.U.U.I.I.I.I.P.P.P.P.P.G.P.P.G.G.P.G.G.G.G.G.D.D.D.D.D.D.D.D.S.D.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.C.C.Z.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.V.V.g.V.V.e.g.e.g.e.e.g.e.e.e.e.w.e.e.w.e.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.q.q.9.9.9.9.9.9.7.9.9.7.7.7.7.6.7.7.6.6.6.6.6.6.6.6.6.<.6.6.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.:.$.>.>.$.$.>.$.$.>.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.@.m @.@.@.#.%.-.%.-.%.%.%.%.%.%.*.%.%.*.*.n n n n n n *.b *.*.b *.b c c b b c c c c c c c k k c c k k k k l k l l j l j j j a a l a l l a l l a a a a f a i u u u u u a u > o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo * 1.U.U.I.I.I.I.P.P.P.P.G.G.P.G.P.G.G.G.G.G.G.D.G.D.G.D.D.D.D.D.S.S.S.S.S.S.S.Z.S.Z.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.g.g.g.g.g.g.g.e.g.g.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.9.7.7.7.7.7.7.7.7.7.6.6.7.6.6.<.6.6.<.6.<.<.<.<.<.<.<.,.<.<.,.,.,.,.>.>.,.,.>.,.>.>.>.>.>.>.:.:.>.>.>.:.$.$.=.$.$.$.$.$.$.#.$.$.#.#.$.#.#.#.#.#.v @.@.#.#.@.#.*.&.-.&.%.&.%.-.%.%.%.*.*.*.%.*.n *.n n *.n n n n c b b *.b b b b c c c c c k c k c c k k k k k k l l j j l j a l l l a l a a l f a a f a a a i a u u u u u a a q O X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX > ,.I.I.I.I.I.I.P.P.P.P.P.G.G.G.G.G.G.D.G.D.G.D.D.D.D.D.D.S.S.D.S.S.S.S.Z.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.V.g.V.g.g.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.<.6.<.<.<.<.,.<.,.,.,.,.>.,.,.,.,.>.>.>.>.>.>.>.>.>.>.>.=.:.$.$.>.$.:.$.:.$.$.$.$.#.$.$.$.#.#.$.#.#.#.#.#.#.#.@.v #.&.-.-.&.%.%.%.%.%.m #.%.%.*.%.M n n m m *.n n n n b *.c b b c c b b c c c c k c c k c k k l l c l l k k j l j j j l a j l a a l a a a a a a f i a a u u u u u a a > . X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX w 7.I.U.I.I.P.P.P.G.P.G.P.G.G.G.G.G.G.D.G.D.D.D.S.D.S.D.S.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.g.g.V.g.g.e.g.e.V.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.9.9.q.9.9.9.9.9.7.9.9.9.9.9.7.7.7.6.7.6.7.6.6.6.6.6.6.<.6.6.<.<.<.<.<.,.<.<.,.,.,.,.,.,.,.,.>.,.>.,.>.,.>.>.>.$.>.>.$.$.>.:.$.:.$.$.>.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.#.#.@.@.%.;.&.&.%.%.%.%.%.*.%.#.m -.*.%.n %.*.n *.n n M *.n n c n n c c c c c c b c c c k c c c k c k k l k k k k l j l j h l l a l a l a l a l a l a a u u a u u u u u u a q @ X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo t 7.I.I.I.P.P.P.P.G.P.G.P.G.G.G.G.D.D.D.D.D.D.D.S.D.S.D.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.V.g.V.g.g.g.g.g.g.e.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.9.9.9.q.9.9.9.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.$.>.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.#.#.#.#.v #.&.&.&.&.-.%.%.-.&.%.%.-.%.%.*.m *.*.n *.n n n *.n b n c *.b c c c *.c c c c c c c c c k k l k k k k k j l k j l j l j l a a l a l a a a a a a a a u u u u u u u u a a q + X o o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo q 6.P.I.P.P.P.P.P.P.G.G.G.G.D.G.D.D.D.D.D.D.D.D.S.S.S.S.S.S.Z.Z.S.Z.S.Z.Z.Z.C.Z.Z.C.Z.C.Z.C.C.C.V.C.C.C.V.C.V.V.V.V.V.V.g.g.V.g.g.g.g.e.g.e.g.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.q.w.q.q.q.q.9.9.q.q.9.q.9.9.9.9.9.9.9.7.9.6.9.7.7.7.7.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.,.,.<.,.,.,.,.,.,.,.,.>.,.>.>.>.,.>.>.>.>.>.>.$.:.$.>.$.$.$.$.$.$.$.$.$.$.$.#.#.#.$.#.#.#.$.#.#.#.v $.%.&.-.&.-.-.%.&.&.%.%.%.%.*.*.%.%.m *.n *.n n n *.b *.b n b n b *.b c b c c c c c c c c c k k l k l c l j j l j l j l a l h l a a l l a a a a a a a u a u u u u u u a u w + X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX e 6.P.I.P.P.P.G.G.G.G.G.G.D.D.G.D.D.D.D.S.S.D.S.S.S.S.Z.S.S.S.Z.S.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.V.V.C.V.C.V.V.V.V.V.V.V.V.g.V.V.e.g.e.g.e.g.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.w.w.w.q.q.w.q.q.q.q.q.q.q.9.9.9.q.9.9.9.7.9.9.9.7.7.7.6.7.6.7.6.6.6.6.6.<.6.6.<.<.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.:.>.>.>.:.:.$.>.$.$.>.$.$.$.$.$.#.$.#.$.#.#.#.#.#.#.#.v %.3.-.&.-.&.&.%.%.%.&.%.#.%.%.%.%.m #.m m *.*.M *.n n *.b b n n b x c c b b c c c c c c k l c k k k c k k k l l j j j l j j h h h l a l a a a a l a a i u u u u u u u u u u q @ o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX > ,.P.P.P.P.P.G.G.G.G.D.G.G.S.G.S.S.S.S.S.S.S.S.S.S.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.V.V.V.V.V.V.g.e.V.g.g.g.e.g.e.g.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.9.q.9.9.9.9.9.9.9.7.9.7.7.9.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.6.<.6.,.<.,.<.<.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.>.>.>.$.>.=.=.$.=.$.=.$.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.&.%.;.&.&.-.&.&.%.&.&.%.%.%.*.%.%.*.%.*.*.m *.m m m n n n b n b n b b b b b b c c c c c z c c k l k k k k k k k l j j l j j l h h h h h h f h a a f a u u u u u u u u u u a a q @ X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX - =.G.P.P.G.P.G.G.G.G.S.G.D.D.S.G.S.D.S.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.C.V.C.V.V.V.g.V.g.g.V.V.g.g.V.g.V.e.g.e.e.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.9.q.q.9.q.9.q.9.9.9.9.9.7.9.7.7.7.7.6.7.6.7.7.6.6.6.6.6.6.<.<.6.,.<.6.,.<.<.,.,.,.,.,.,.>.,.,.,.,.>.,.>.>.>.>.>.>.>.$.>.:.>.$.=.=.=.$.=.$.$.$.$.$.$.#.#.#.$.#.#.#.#.#.%.;.&.;.;.&.&.%.-.-.%.%.%.%.%.%.%.*.%.%.*.*.*.m n n n n n *.b n b b c b b b x b b c c c k c k k c k k k k k k k l l j j l l h h h l h h h l f h h a a l u u a u u u u y u u a y > . o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX * @.S.P.P.G.G.G.G.G.D.S.D.D.D.S.S.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.V.C.V.V.C.V.V.V.V.V.V.g.g.V.g.e.V.g.e.e.e.e.e.e.e.e.e.w.w.e.e.w.w.w.w.w.q.w.w.q.w.q.q.9.q.q.q.9.q.q.9.9.q.7.9.9.7.7.7.7.7.7.7.6.7.6.6.6.6.6.6.6.,.6.6.,.6.<.<.,.6.,.,.<.,.,.,.,.,.,.,.,.,.,.>.>.>.>.>.>.>.>.>.:.=.>.$.:.$.$.=.$.$.$.$.$.$.$.#.#.$.$.#.#.#.#.#.#.%.&.3.&.-.&.&.%.-.-.%.%.%.%.%.%.%.%.%.%.*.*.*.*.n n n n n n n b *.n b b b b b b c c c c c c c k k c l c l k k k k k l j j j l h l l h h h h h f h f f a a a u u u u u u u u a a t : X X X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo @ k e.P.P.G.G.D.G.G.G.S.D.S.G.S.S.S.Z.S.S.Z.Z.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.V.g.g.g.g.e.e.g.g.e.e.e.e.e.e.e.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.9.9.7.9.9.7.7.9.7.9.7.7.6.7.7.6.6.7.6.6.6.6.6.6.<.6.6.,.<.<.6.,.<.<.,.,.,.,.,.,.,.,.>.>.>.,.>.>.>.>.>.>.>.>.$.>.>.$.$.>.=.=.$.$.$.$.$.#.$.#.$.#.#.#.$.#.$.&.;.3.3.&.-.;.-.%.&.&.&.%.%.%.%.%.%.%.*.*.*.*.n *.n *.n *.n n n b *.b b b b b b b c c c c c k c l c k k k k k k l l j j j l l h l l h h h h h h h h h f h u a u u u u u u u u u a t * o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X u 9.G.P.G.G.G.S.G.S.D.S.S.S.S.S.S.Z.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.C.V.V.V.C.V.V.V.V.V.V.g.V.V.g.g.g.e.g.e.V.e.e.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.9.q.q.9.q.9.q.7.q.9.9.9.9.7.9.9.7.7.7.7.7.7.6.7.6.6.6.6.6.,.6.6.6.,.<.<.,.6.,.<.,.,.,.,.,.,.,.,.,.>.,.>.>.>.>.>.>.>.>.>.$.>.>.:.$.:.$.:.$.$.$.$.$.$.$.$.#.$.#.#.#.#.%.&.;.&.&.&.&.&.&.&.&.&.%.%.%.%.%.%.%.%.%.*.*.*.M *.n *.n m n b n b b b *.b b b b b c c c c c z c c k c k c k k k k k l j k l l j h l h h j h h h h h h a f a a u u u u u u u u u u a q & o X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o e >.S.G.G.D.G.S.G.S.S.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.C.Z.C.C.C.C.C.C.V.V.C.C.C.V.V.V.V.V.V.g.g.g.g.g.g.g.g.e.g.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.9.q.9.q.q.9.9.9.9.7.9.9.7.7.7.7.7.6.6.6.6.6.6.6.6.6.6.6.6.,.6.,.<.6.,.,.,.,.,.<.,.,.,.>.>.,.>.,.>.,.>.,.>.>.>.>.>.:.>.:.$.>.>.$.=.$.>.$.$.$.$.#.#.$.#.#.#.#.:.;.;.;.;.;.&.&.&.&.&.&.%.%.&.%.%.%.%.*.%.*.%.%.*.*.*.*.m *.n n n n b n *.b b b b b x c c c z c c c c k k k c k k k k l j l j l k a h j h l h h h h h h f f f a a f u u u u u u u u u u > % o o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o % x g.G.G.G.G.D.D.S.S.S.S.S.Z.S.Z.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.C.V.V.V.V.V.V.V.V.V.g.V.V.g.g.g.g.e.e.e.e.e.e.e.e.e.e.w.e.w.w.w.w.w.w.w.w.q.q.q.q.9.q.9.9.q.q.q.9.9.9.9.9.7.9.7.7.7.7.7.7.6.6.7.6.7.6.6.6.6.6.6.<.6.6.,.6.6.6.,.6.,.,.6.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.$.>.$.>.$.>.>.$.$.$.$.$.$.$.$.$.$.#.$.#.$.#.;.;.;.;.;.;.;.&.3.&.-.&.-.%.&.%.%.%.%.%.%.%.%.%.m *.m n n n n n n n n n n n b b b b b b c c c c k c k k c k k k l k l k k k l j j j l j l j h h h h h h f h a a a a u u u u u u u u u u t * . o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X . u 6.S.G.G.S.S.S.S.S.S.Z.S.S.Z.Z.Z.Z.Z.C.C.C.C.C.C.C.C.g.V.C.V.V.V.V.V.V.V.V.g.g.V.g.g.g.g.e.g.e.V.e.e.e.e.w.e.w.w.e.w.w.w.w.w.w.q.w.q.q.q.q.q.q.q.q.q.q.9.9.9.9.9.7.9.9.9.7.7.7.7.7.7.7.7.6.7.6.6.6.<.6.6.<.6.,.,.6.,.,.<.,.,.,.,.,.,.,.,.,.>.,.>.,.>.,.,.>.>.>.>.>.>.>.>.:.>.$.$.$.>.:.$.$.$.$.$.#.$.$.#.#.;.1.;.3.;.;.&.&.&.3.&.&.-.-.&.%.%.%.&.%.%.%.*.%.m *.*.m *.n n *.n n n n b n b b b b b b x c c c c c c c k c l k c k k l k l l l l j a l a j h h h h h h f h h f f u a u u u u u u u a u u w % o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX ; v V.G.D.G.S.S.S.S.S.Z.Z.Z.Z.Z.Z.Z.C.C.C.C.C.C.V.C.C.V.C.V.V.V.V.V.V.V.g.V.V.e.e.g.e.e.g.e.e.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.w.w.q.q.q.q.q.q.q.q.9.q.9.9.9.9.9.6.9.7.9.7.7.9.7.6.6.6.9.6.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.,.,.<.,.,.,.,.,.,.,.>.,.>.,.>.>.>.>.>.>.>.>.$.>.>.$.:.$.=.$.$.$.$.$.$.$.#.$.#.$.:.3.3.;.;.;.;.&.&.&.&.&.-.&.&.&.-.%.%.%.%.-.*.%.%.*.%.*.n *.n *.n *.b *.b *.*.b b b b b c c c c c c c c k k c k c l k k k l j j j j j j j h j l l a l a a a a a a a a u u u u u u u u a a y : . X X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X . u ,.S.S.G.S.S.S.S.S.Z.S.Z.Z.Z.C.Z.C.C.V.C.C.C.V.V.V.V.V.V.V.V.V.g.g.V.e.V.e.V.g.e.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.9.q.9.9.9.9.9.9.9.9.9.9.9.7.6.9.6.9.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.=.,.>.,.=.>.,.>.>.>.>.>.>.$.>.>.$.$.>.$.=.:.$.$.$.$.$.$.$.$.&.1.3.3.;.3.;.;.;.;.-.&.&.&.-.&.-.%.&.%.%.%.%.%.#.*.*.*.*.M *.*.n n *.b b *.b *.b b b b b x b b c c c z c c k k c l k k k k l k k l j l l h l j l a a a l a a l a a a a u a u u u u u u a a y q & o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo % j q.S.S.S.S.S.S.Z.Z.Z.Z.C.C.C.Z.C.C.C.V.C.V.C.V.C.V.V.g.V.g.V.e.V.g.g.g.g.e.V.e.e.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.q.9.q.9.9.9.9.7.9.9.9.6.7.7.7.6.7.7.6.6.6.6.6.6.6.6.<.<.<.6.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.,.,.=.>.>.>.>.>.>.>.=.>.:.:.$.>.$.>.$.$.$.$.$.#.$.$.;.3.1.3.;.;.;.;.;.;.&.-.&.-.&.&.&.%.%.%.#.%.%.%.%.%.%.*.%.*.n *.n n n n n *.n b *.c b b b b b c c x c c k c c k c c k k c l k k k j j j j j h j h h l a l l a a l a a a a u a u u u u u u a u t ; . o o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o o , @.e.S.S.S.Z.S.Z.Z.Z.C.Z.C.C.C.C.V.C.V.C.V.V.V.V.V.V.V.g.g.V.g.g.g.e.g.e.e.e.e.e.e.e.w.e.e.w.e.w.w.w.w.w.w.q.q.w.q.q.9.q.9.q.9.q.9.9.9.9.9.9.9.9.9.9.6.9.6.6.7.6.7.6.6.6.6.6.6.6.<.<.<.6.<.<.<.<.<.<.,.<.,.<.,.,.,.,.,.=.,.,.>.,.>.>.>.>.>.>.=.=.=.$.>.$.>.$.$.$.$.$.$.$.$.:.;.3.1.1.3.1.;.3.&.;.3.;.;.;.&.-.&.%.-.&.%.%.%.%.%.%.#.m *.*.m *.*.n *.n n n n *.c *.b b b b b b b c c c c c c k k k k k l k k k k l j k l j l h j h l h a l a l a a a a a u a a u u u u u a a t > @ o X o UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X q #.V.S.S.S.Z.Z.Z.Z.Z.C.C.C.V.C.V.C.V.V.V.V.g.V.g.g.V.g.V.e.g.e.e.e.e.e.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.7.q.q.9.9.9.q.7.9.7.9.6.9.6.7.9.7.7.6.6.6.6.6.6.<.6.<.6.6.<.<.<.<.<.,.<.,.,.,.<.,.,.,.>.,.>.,.=.=.,.,.>.>.:.>.:.>.>.$.>.$.>.$.$.=.$.$.$.$.$.;.1.1.1.1.1.3.3.;.;.3.;.;.&.&.&.&.%.-.&.&.%.-.%.%.%.*.%.m #.*.*.m *.n *.n n n *.*.b n b b b b x b b b c c c c c c c k c k c k k k l j l k l l j l j l j h l a j a j a a a u a a u u a u a a a a y > + o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX o X @ y =.e.S.S.Z.Z.Z.C.C.C.V.C.C.C.V.V.V.V.V.g.V.V.g.g.g.e.g.e.V.e.V.e.e.e.e.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.q.9.9.q.q.9.q.9.7.q.9.9.7.9.9.9.7.9.9.6.7.6.6.6.6.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.,.,.,.,.,.,.,.,.,.>.,.,.=.,.=.>.>.>.>.>.=.$.:.>.>.>.$.$.$.$.$.$.:.;.1.1.1.3.3.3.;.3.1.3.;.3.3.&.;.&.-.&.&.%.%.%.%.#.%.%.%.%.%.%.m %.m m m *.*.n n b b n n c b c *.c c b b c z z c c k k k c k k k l k k k k k j j j j h a h h h h j a a a a a a a a a a u a a a a y q & O X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X @ t #.q.S.Z.Z.Z.C.C.C.V.C.C.V.V.V.V.V.g.g.g.g.g.g.e.e.V.e.e.e.e.e.e.e.e.w.w.e.w.w.w.w.q.w.q.w.q.w.q.q.q.q.q.9.q.q.7.q.7.9.9.9.7.9.7.9.9.6.6.9.6.7.6.6.6.6.6.6.6.6.6.<.<.6.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.>.,.,.>.,.=.>.>.>.=.>.=.>.>.$.$.$.:.$.>.$.;.;.1.1.1.3.1.4.1.3.;.;.;.;.;.3.3.&.&.&.&.-.&.&.-.%.&.%.%.%.%.*.*.*.m *.*.m *.m *.b *.n *.n x b *.b b b *.c c z z c c c k c c k l k l k k l k k j l j j h h j l h j h a j a a a a a a u a a a a a a y > % . o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX o o @ t n 6.C.Z.Z.C.C.C.V.V.C.V.V.V.V.V.V.g.g.g.g.V.e.e.e.V.e.e.w.e.w.e.w.e.w.w.w.w.w.w.w.q.q.q.q.q.q.q.q.9.q.9.9.q.7.q.7.7.9.9.7.7.7.7.7.9.6.7.6.7.6.6.6.6.6.<.6.<.6.<.<.<.<.,.<.<.<.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.=.>.=.=.:.>.:.>.:.$.$.:.1.1.5.1.1.4.1.1.3.1.3.;.;.;.&.3.&.&.&.&.&.%.&.%.%.%.#.&.%.-.*.%.%.m %.*.*.m n *.*.n *.b *.b c *.b c b b b c c c c c c c k k c l c k k k k k k k l j l h h l j j h h a a h a a a a a a a a a a a a e > & . o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X . > k >.w.Z.C.C.C.C.V.C.V.V.V.V.g.g.g.g.g.g.e.g.e.e.e.e.e.w.e.w.e.w.w.w.w.w.w.w.q.w.q.q.q.q.q.9.q.q.q.9.q.9.9.9.9.7.9.7.7.7.7.7.7.6.6.7.6.6.7.6.6.6.6.<.6.6.<.<.<.<.<.,.<.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.>.>.>.=.=.>.:.=.$.$.=.$.>.1.5.;.5.5.5.;.5.1.;.;.;.;.;.;.;.;.&.;.&.&.-.-.%.%.&.%.%.%.%.%.%.%.*.m *.*.*.*.n n *.n n b b n n n b b b b b b c c c c c z z k z k k c k k k j k j j j j j j h h h h h a j a a a a a a a a a a h y q : @ o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X o + e x 6.e.C.C.C.V.V.V.V.V.g.g.g.g.g.g.g.e.e.e.e.e.e.e.w.e.w.w.w.w.w.q.w.w.q.q.q.q.q.q.q.q.9.7.7.q.7.q.9.9.7.q.7.9.9.9.6.7.7.7.6.6.6.6.6.6.6.6.<.6.<.<.<.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.=.>.:.:.:.=.$.1.1.5.5.5.1.5.1.;.;.;.;.;.1.;.;.;.;.;.;.;.&.;.&.&.%.%.&.*.%.&.%.%.%.&.#.m %.%.*.*.*.*.n *.n *.n *.*.x x b b n b z x c z c z z c k k z k k k k j k j k j j j j j a a j h h h h a a a a a j a a j a a e > & . o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X o X * y v ,.w.C.V.g.C.V.g.V.g.g.g.e.e.g.e.e.e.e.w.w.e.e.w.w.w.w.w.w.w.w.q.q.q.q.q.9.q.9.q.q.9.7.q.7.7.q.7.7.7.7.7.7.7.7.6.9.6.6.6.6.6.6.6.6.6.<.6.<.6.<.<.,.<.,.,.<.,.,.,.,.,.>.,.,.>.>.,.>.>.,.>.>.>.>.:.>.:.:.=.$.>.>.$.$.$.$.$.$.$.#.$.#.$.$.#.#.#.#.#.@.#.@.#.@.@.@.@.@.@.@.v v v v v v v v v x x @.x x x x x x z z k x k z z k x k k x x j j k k k k j j j j j j j j j j j a j j a a a j j a a j a j j a j a e q & @ o o X X o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X o o * e z =.7.e.V.C.V.V.g.g.g.g.e.g.e.e.e.e.e.e.w.w.e.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.9.q.q.9.7.q.7.7.q.7.7.7.7.7.7.7.6.9.6.7.6.6.6.6.6.<.6.<.<.6.<.<.<.<.<.<.<.,.<.,.,.,.,.,.,.,.,.>.>.,.>.>.>.>.>.>.:.>.=.=.>.$.>.$.:.$.:.$.$.$.$.$.$.#.$.#.#.$.#.#.#.@.#.@.@.@.@.@.@.@.@.@.#.v #.v @.v v x @.x x x x x x x x x x x x x z x x k x x k k k x k k k k z j k k k j j k j a j j j a j j j a j j j a j h y q > & O o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX X X X @ > t z #.<.q.g.g.V.V.e.V.V.e.e.e.e.e.w.e.e.w.w.w.w.q.q.w.q.w.q.q.q.q.q.9.q.q.9.9.q.7.9.7.9.7.9.9.7.7.7.7.7.7.7.6.6.6.6.6.6.6.6.<.6.6.<.<.6.,.6.,.,.<.,.,.,.,.,.,.,.,.>.,.,.>.,.>.>.>.>.>.:.>.:.>.$.>.:.:.:.$.$.$.$.$.$.$.$.$.#.$.#.#.#.#.#.#.#.*.#.#.#.#.@.@.#.@.@.@.v @.v v @.v @.x @.x v v x v x x x x x z x k z z z k z z z k k k k k k k j k j k j j j j j a a j j j j j a a t q > * + o o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X o X @ * q y z @.:.,.7.q.w.V.e.e.e.e.e.e.w.e.e.e.w.w.w.w.w.w.q.q.q.q.q.q.q.q.q.q.q.9.q.9.q.9.9.9.9.9.7.9.7.6.9.7.7.7.7.6.6.6.6.6.6.6.6.6.<.6.,.6.<.<.<.<.<.<.<.,.,.,.,.,.,.,.>.,.>.>.,.>.>.>.>.>.>.>.>.>.>.>.>.:.:.$.:.$.:.$.$.$.$.=.#.=.#.#.$.#.#.#.#.#.#.#.#.@.@.@.#.@.@.@.@.@.@.@.x v v v v @.x x @.x x x x x x x z z z z z z z z x z k z k k k k k k j k j a u y e q , * % @ o X o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X X o X . & ; , e y f j v n @.#.#.#.*.*.#.@.@.v @.@.@.v v v v v x v v x v x v v v x x n v z b b b v b x x b b z b x b z z k k x z k c z k k z z k k k k k j k j j j j j j j j j j j h l h h j h h h h h h h h h h h h f h u h a a h a a h h u u u u u u a u u u u y y u y y y u y y u y t y t t t t t t y t t y t t y y t t e e t t e e e e e q q q : - * % @ O . o o o X X X o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X X X X X o o o . . O O @ O @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ O @ @ O O O @ @ @ @ O O O O @ O O @ O O O O O @ @ O O O O O @ O O O O @ @ O @ @ . @ O @ . @ O @ . @ O O O O O O O O O O O O O O O O O . O O O O . O O . . . O . O O O O @ . O . . @ . O O . O . O O . O . O O O O O O O O O O . . O . . . . o O O o O O O O . . o o o X o o o o o X X X o X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X X o o X o X o o o X o o o o o o X X o o o o o X o o o X X X o o o o o o o o o X o o o o o o o X o o o X X X X o X o X X o o X X X o X X o X o X o o o o X o o X o o o X X o X o o X o o X X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX X X X o o X X X o X o o X o X o o o o o o o X X o o X X o X X X o o X o X o o X X o X o X o o o o X X X o o X X o X X X o o o X o X X o X o o X X X o o X o X X o X X o X X o X X X X o o o X X o o o X o o X X o o X X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo X o X X o o X X o X X X X X X X X X X o X X X X X X o X X X X X X X X X o o X o X o X o X o X X X X X X X X X X X X X X X X X X o X X X X X X o X X X X X X X X X o o X o X o X o X o X X X o X X o X X X o X X X o o X X X X o o o X X X X X X o X o X o X X X o X X o X X X X o X X X X X o X o X o o X X X o o X o X o X X UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX"
};

1
lib/ntk Submodule

@ -0,0 +1 @@
Subproject commit 720d8d33200ebd030df700c6c7a5a9cdf4581c03

515
mixer/doc/MANUAL.html Normal file
View File

@ -0,0 +1,515 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta name="generator" content="Generated by MUP v3.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link type="text/css" rel="stylesheet" href="mup.css">
<title>Non Mixer User Manual</title>
</head>
<body>
<div id=cover>
<h1>Non Mixer User Manual</h1>
<h3></h3>
<address>
Jonathan Moore Liles <a href="mailto:male@tuxfamily.org">&lt;male@tuxfamily.org&gt;</a><br>
<br>
</address><hr></div>
<div id=body>
<div id=toc>
<h1 id=toc>Table Of Contents</h1>
<ul>
<li><a href="#n:1.">1. Non Mixer User Manual</a>
<ul><li><a href="#n:1.1.">1.1. Mixer Groups</a>
<ul><li><a href="#n:1.1.1.">1.1.1. How to Choose Groupings</a>
<li><a href="#n:1.1.2.">1.1.2. Considering JACK Overhead</a>
<li><a href="#n:1.1.3.">1.1.3. Creating a New Group</a>
<li><a href="#n:1.1.4.">1.1.4. Adding a Strip to an Existing Group</a>
<li><a href="#n:1.1.5.">1.1.5. Removing a Strip from a Group</a>
<li><a href="#n:1.1.6.">1.1.6. Removing a Group</a>
<li><a href="#n:1.1.7.">1.1.7. Monitoring Group DSP Load</a>
</ul><li><a href="#n:1.2.">1.2. Mixer Strips</a>
<ul><li><a href="#n:1.2.1.">1.2.1. Navigation</a>
<li><a href="#n:1.2.2.">1.2.2. Control</a>
<li><a href="#n:1.2.3.">1.2.3. Signal Chain</a>
<ul><li><a href="#n:1.2.3.1.">1.2.3.1. Modules</a>
<ul><li><a href="#n:1.2.3.1.1.">1.2.3.1.1. OSC Control</a>
<li><a href="#n:1.2.3.1.2.">1.2.3.1.2. MIDI Control</a>
<li><a href="#n:1.2.3.1.3.">1.2.3.1.3. Manipulation</a>
<li><a href="#n:1.2.3.1.4.">1.2.3.1.4. Module Parameter Editor</a>
<li><a href="#n:1.2.3.1.5.">1.2.3.1.5. Controls</a>
<ul><li><a href="#n:1.2.3.1.5.1.">1.2.3.1.5.1. Control Voltages</a>
</ul><li><a href="#n:1.2.3.1.6.">1.2.3.1.6. Spatialization </a>
<ul><li><a href="#n:1.2.3.1.6.1.">1.2.3.1.6.1. Spatializer Module</a>
<ul><li><a href="#n:1.2.3.1.6.1.1.">1.2.3.1.6.1.1. Reverb Routing</a>
</ul><li><a href="#n:1.2.3.1.6.2.">1.2.3.1.6.2. LADSPA Plugins</a>
</ul></ul></ul></ul><li><a href="#n:1.3.">1.3. Spatialization Console</a>
<li><a href="#n:1.4.">1.4. Projects</a>
<ul><li><a href="#n:1.4.1.">1.4.1. JACK I/O</a>
</ul></ul></ul></ul><hr></div>
<h1 id="n:1.">1. Non Mixer User Manual</h1>
<center><div class="fig image"><table id="Fig.1.1" border=1>
<caption>
<strong>Fig. 1.1.</strong> Mixer
</caption>
<tr><td><img src="non-mixer-complex.png" alt="fig. 1.1"></td></tr>
</table></div></center>
<p>
The Non-Mixer is a stand-alone audio mixer, utilizing JACK as an audio subsystem. At the time of writing, the architecture of Non-Mixer is unique. By making the mixer stand-alone, concepts such as busses, sends, and inserts are eliminated, as the same goals can be achieved by simply adding more strips to the mixer.
</p>
<p>
Start by creating a new project (menu item <tt>Project/New</tt>).
</p>
<center><div class="fig image"><table id="Fig.1.2" border=1>
<caption>
<strong>Fig. 1.2.</strong> New Project
</caption>
<tr><td><img src="new-project.png" alt="fig. 1.2"></td></tr>
</table></div></center>
<p>
After the project has been created. Hit <tt>a</tt> or choose <tt>Mixer/Add Strip</tt> from the menu to add a new strip to the mixer.
</p>
<h2 id="n:1.1.">1.1. Mixer Groups</h2>
<center><div class="fig image"><table border=1>
<tr><td><img src="group-dropdown.png" alt="fig. "></td></tr>
</table></div></center>
<p>
Groups serve several purposes. Firstly, they allow for some organization of strips. Groups also allow parallel relationships of mixer strips to be made explicit. This has important performance implications in JACK2. Non Mixer supports an unlimited number of groups, each of which can contain an unlimited number of mixer strips.
</p>
<h3 id="n:1.1.1.">1.1.1. How to Choose Groupings</h3>
<p>
All strips in a group should be completely parallel with no feedback loop connections. A typical group might be named 'Input' and contain all input strips (strips that accept input from Non Timeline and have outputs all connecting to some master bus).
</p>
<p>
To put it another way, if you have 100 inputs strips with identical output configurations (e.g. stereo or B-Format), that all connect to a master bus, then you have a candidate for a group.
</p>
<h3 id="n:1.1.2.">1.1.2. Considering JACK Overhead</h3>
<p>
JACK provides immense flexibility. But, as in most situations, that flexibility comes with a cost. In JACK the cost is a context switch per client. This applies <i>even for many clients which belong to the same process</i>, as in Non Mixer. Various factors go into determining the price of a context switch on any given system. It's not very expensive, but it does add up. It becomes problematic in sessions involving many clients (think 100s), each of which having a small DSP load (often smaller than the cost of JACK's context context switch). JACK <b>could</b> be smart enough to recognize that some clients belong to the same process and could be executed serially without requiring a context switch, but at the time of writing neither JACK1 nor JACK2's scheduling is that smart.
</p>
<p>
If you're mixing a normal song (couple of dozen tracks) at low latency, this overhead will probably account for less than 1% of the total DSP load. If you're mixing an entire orchestra at ultra-low latency, then it might account for a quarter or more of the total DSP load.
</p>
<p>
Groups mitigate this cost by reducing the number of JACK clients required for a mix. Strips in a group will execute serially without context switches or thread synchronization--reducing the total JACK overhead. However, if you have several groups, then they may all by run in parallel by JACK2.
</p>
<p>
<p>
To illustrate this point here are some figures from an actual song session including the whole Non suite plus a sampler, a synth and an ambisonics convolution reverb with a total of 13 strips in 4 groups in different configurations on the same system.
</p>
<p>
JACK's DSP load figures are interpreted thus: if at a 2.7ms software latency setting the average time a proces cycle takes to complete is 2.7ms, then the DSP load is 100%. The usable ceiling on DSP load is 80%. This is true for both JACK1 and JACK2. The difference is that JACK2 may use all available CPU cores to execute the graph (if there are enough clients in parallel signal flow).
</p>
<p>
32-bit Intel Core2 Duo @1.6Ghz -r 48000 -p 256 -n 2 (5.3ms)
</p>
<center><div class="fig table"><table border=1>
<tr><th>JACK Ver</th><th>Groups</th><th>DSP Load</th></tr>
<tr><td>JACK1</td><td>N</td><td>39%</td></tr>
<tr><td>JACK1</td><td>Y</td><td>27%</td></tr>
<tr><td>JACK2</td><td>N</td><td>24%</td></tr>
<tr><td>JACK2</td><td>Y</td><td>31%</td></tr>
</table></div></center>
<p>
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 256 -n 2 (5.3ms)
</p>
<center><div class="fig table"><table border=1>
<tr><th>JACK Ver</th><th>Groups</th><th>DSP Load</th></tr>
<tr><td>JACK1</td><td>N</td><td>28%</td></tr>
<tr><td>JACK1</td><td>Y</td><td>12%</td></tr>
<tr><td>JACK2</td><td>N</td><td>12%</td></tr>
<tr><td>JACK2</td><td>Y</td><td>11%</td></tr>
</table></div></center>
<p>
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 128 -n 2 (2.7ms)
</p>
<center><div class="fig table"><table border=1>
<tr><th>JACK Ver</th><th>Groups</th><th>DSP Load</th></tr>
<tr><td>JACK1</td><td>N</td><td>29%</td></tr>
<tr><td>JACK1</td><td>Y</td><td>17%</td></tr>
<tr><td>JACK2</td><td>N</td><td>17%</td></tr>
<tr><td>JACK2</td><td>Y</td><td>17%</td></tr>
</table></div></center>
<p>
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 32 -n 2 (0.7ms)
</p>
<center><div class="fig table"><table border=1>
<tr><th>JACK Ver</th><th>Groups</th><th>DSP Load</th></tr>
<tr><td>JACK1</td><td>N</td><td>x</td></tr>
<tr><td>JACK1</td><td>Y</td><td>x</td></tr>
<tr><td>JACK2</td><td>N</td><td>43%</td></tr>
<tr><td>JACK2</td><td>Y</td><td>41%</td></tr>
</table></div></center>
<p>
As you can see, for multiprocessor systems, JACK2 clearly has an advantage even without grouping.
</p>
<p>
Of course, results will vary depending on the system and the mix. On the dual core system, performance actually degraded with JACK2 when using groups--this is because the number of parallel flows that JACK2 detected was reduced and the second core was being under utilized. Similarly, the performance of the 8-core AMD system doesn't seem that great even in the ungrouped mode--this is because the DSP load of each individual client is around the same as the cost of the context switching. It's a wash either way (if each strip had more or more complex modules on it, then the ungrouped mode would probably perform better). Since JACK1 cannot take advantage of more than 1 CPU core, there is no benefit to parallelism and grouped mode always outperforms ungrouped mode.
</p>
<p>
So, for maximum capacity the combination of a multicore CPU with JACK2 and mixer groups is best.
</p>
<h3 id="n:1.1.3.">1.1.3. Creating a New Group</h3>
<p>
Groups can be created by selecting the group dropdown on any mixer strip and choosing 'New Group'. A window will popup asking for a group name. Group names must be unique. The group will then be created and the selected strip added to it.
</p>
<h3 id="n:1.1.4.">1.1.4. Adding a Strip to an Existing Group</h3>
<p>
To add a strip to an existing group, simply select a group name from the group dropdown on the strip.
</p>
<h3 id="n:1.1.5.">1.1.5. Removing a Strip from a Group</h3>
<p>
Select '---' from the group dropdown. The strip will be removed from the group and will run in an independent JACK client.
</p>
<h3 id="n:1.1.6.">1.1.6. Removing a Group</h3>
<p>
Groups are destroyed automatically as soon as they contain zero strips.
</p>
<h3 id="n:1.1.7.">1.1.7. Monitoring Group DSP Load</h3>
<p>
Above the grop dropdown on each strip is a DSP load meter for the selected group. For ungrouped strips or strips which are the only one in their group, this is simply the DSP load of the single strip.
</p>
<p>
If DSP usage goes up when strips are fed silence, then you're probably running a plugin which has denormal issues.
</p>
<h2 id="n:1.2.">1.2. Mixer Strips</h2>
<center><div class="fig image"><table id="Fig.1.3" border=1>
<caption>
<strong>Fig. 1.3.</strong> Mixer Strip
</caption>
<tr><td><img src="single-strip.png" alt="fig. 1.3"></td></tr>
</table></div></center>
<p>
Each mixer strip has a name and color, each of which may be defined by the user. Names, but not colors, must be unique. In addition, each strip has controls to move it left or right (the arrows) in the display and to remove it entirely (the 'X').
</p>
<p>
Strips start out in <i>narrow</i> mode, with the <i>fader</i> view enabled. Click the desired button to toggle the mode or view.
</p>
<p>
<p>
The fader view comprises a large gain control and digital peak meter indicator. These are automatically connected to the default gain and meter modules of the strip's signal chain.
</p>
<p>
To see how an audio signal traveling through this strip will be processed, switch to its <i>signal</i> view.
</p>
<h3 id="n:1.2.1.">1.2.1. Navigation</h3>
<p>
A strip is focused when you click on it. Focus can be moved among strips with the <tt>Tab</tt> and <tt>Shift-Tab</tt> keys.
</p>
<h3 id="n:1.2.2.">1.2.2. Control</h3>
<p>
The focused strip can be moved in the display order via the <tt>[</tt> and <tt>]</tt> keys. <tt>Delete</tt> removes a strip (with confirmation dialog). <tt>n</tt> and <tt>w</tt> set the focused strip's width to <i>narrow</i> or <i>wide</i>, respectively, and <tt>f</tt> and <tt>s</tt> switch between <i>fader</i> and <i>signal</i> views. The strip's context menu can be invoked without the mouse by hitting the <tt>Menu</tt> key (assuming your keyboard has one).
</p>
<h3 id="n:1.2.3.">1.2.3. Signal Chain</h3>
<p>
The signal chain view of a mixer strip provides a way to view and manipulate the signal processing of a mixer strip.
</p>
<h4 id="n:1.2.3.1.">1.2.3.1. Modules</h4>
<center><div class="fig image"><table id="Fig.1.4" border=1>
<caption>
<strong>Fig. 1.4.</strong> Modules
</caption>
<tr><td><img src="modules.png" alt="fig. 1.4"></td></tr>
</table></div></center>
<p>
All signal processing in Non Mixer occurs in <i>Modules</i>. Modules are signal processing abstractions providing ports for audio and control I/O and, in addition, some simple user interface. Sink and source modules carry audio out of and into JACK.
</p>
<p>
Modules are displayed as named blocks. Some modules (e.g. the Meter module) may have additional GUI components.
</p>
<p>
Each module has zero or more audio I/O ports and zero or more control ports. Audio routing between modules is handled automatically. Modules with mono audio configurations (one channel in, one channel out) can be automatically adjusted to support any number of discrete channels. Modules with more (related) channels, however, introduce restrictions on the order in which modules can be chained.
</p>
<p>
An indicator in the upper left-hand corner of each module block indicates whether the module has any parameters bound to controls.
</p>
<p>
Non Mixer has several built-in modules. They are:
</p>
<dl>
<dt><em>JACK</em></dt>
<dd>Performs JACK I/O</dd>
<dt><em>Gain</em></dt>
<dd>Applies gain in dB</dd>
<dt><em>Meter</em></dt>
<dd>Digital Peak Meter</dd>
<dt><em>Mono Pan</em></dt>
<dd>Performs intensity panning of a mono signal into a stereo signal.</dd>
<dt><em>Aux</em></dt>
<dd>Provides auxiliary outputs</dd>
<dt><em>Spatializer</em></dt>
<dd>Provides advanced Ambisonics spatialization with distance simulation.</dd>
<dt><em>Plugin</em></dt>
<dd>Hosts a LADSPA plugin</dd>
</dl>
<h5 id="n:1.2.3.1.1.">1.2.3.1.1. OSC Control</h5>
<p>
The input parameters of all modules are controllable via OSC, regardless of whether the parameter is set as controllable.
</p>
<p>
The format of the automatically generated OSC path names is as follows:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]
</pre></td></tr>
</table></div>
<p>
The UDP port that the OSC server binds to can be set by providing the <tt>--osc-port</tt> command-line option. Without this option, a random port will be bound automatically (the exact OSC URL will always be printed to the console as a line beginning with "OSC: ").
</p>
<p>
The default path accepts a float value between 0.0 and 1.0 (a Control Voltage like signal) which will be automatically scaled to the allowable range of the control.
</p>
<p>
A path ending in /unscaled is also available, which accepts exact values, which will be clamped to the allowable range. For example:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]/unscaled
</pre></td></tr>
</table></div>
<p>
If same module/plugin is used twice in a signal chain (e.g. multiple Gain stages), then a position dependent sequence number will be appended to the module name. For example, a path might look like the following:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
/strip/Foo/Gain.1/Gain_(dB)
</pre></td></tr>
</table></div>
<p>
For the second instance of the Gain module on the strip named 'Foo'.
</p>
<p>
There's a possibility to get exact OSC path for module controls. For this you need to switch strip mode to 'Signl', right click a module, for example 'Gain', and open 'Edit parameters' dialog. OSC path will be shown in a statusbar of the main window when you hover a parameter.
</p>
<p>
Non-DAW accesses these same signals via a more advanced signal routing layer on top of OSC. Any module parameter is easily controlled via Control Sequences in Non-DAW without the need to specify an OSC URL.
</p>
<h5 id="n:1.2.3.1.2.">1.2.3.1.2. MIDI Control</h5>
<p>
Automatic translation between MIDI and Non's OSC Signals can be achieved by adding the headless program <tt>non-midi-mapper</tt> (included in the Non-Mixer distribution) to an NSM session.
</p>
<p>
Non-MIDI-Mapper provides JACK MIDI input and output ports that can be connected to a suitable controller device.
</p>
<p>
In Non-Mixer, the <tt>Remote Control/Start Learning</tt> menu item enters learning mode in which Non Mixer can be taught which controls to associated with which MIDI messages by clicking a control in Non-Mixer and moving the desired control on the MIDI device. <tt>Remote Control/End Learning</tt> ends the learning session.
</p>
<p>
The mapping will be saved with the NSM session.
</p>
<h5 id="n:1.2.3.1.3.">1.2.3.1.3. Manipulation</h5>
<p>
Left-clicking on a module brings up a Module Parameter Editor window for the selected module.
</p>
<p>
Right-clicking on a module brings up a context menu allowing you manipulate the module, as well as to pick a new module to insert before the selected one in the chain.
</p>
<p>
Middle-clicking on a module toggles its activation state (the audio signal will bypass inactive modules).
</p>
<p>
Control+Right-clicking on a module causes it to be removed from the chain (modules added by default cannot be removed).
</p>
<p>
The focused module may also be controlled via the keyboard. <tt>Menu</tt> brings up the context menu for the focused module. <tt>Space</tt> opens the module parameter editor, <tt>b</tt> toggles the bypassed state, and <tt>Delete</tt> removes the module from the chain (without confirmation!). <tt>Control-X</tt>, <tt>Control-C</tt> and <tt>Control-V</tt>, cut, copy, and paste modules, respectively. Modules may be copied within or across chain boundaries. The normal module I/O constraints also apply to pasted modules.
</p>
<h5 id="n:1.2.3.1.4.">1.2.3.1.4. Module Parameter Editor</h5>
<center><div class="fig image"><table id="Fig.1.5" border=1>
<caption>
<strong>Fig. 1.5.</strong> Module Parameter Editor
</caption>
<tr><td><img src="module-parameter-editor.png" alt="fig. 1.5"></td></tr>
</table></div></center>
<p>
The Module Parameter Editor is used to alter the values of a module's parameters, and in addition, to bind its parameters to controls. A menu button in the upper left-hand corner allows you to select between knob, vertical slider and horizontal slider controls.
</p>
<p>
Underneath each control is a bind button. Clicking adds a new control to the chain's <i>Controls</i> view and binds it to the parameter in question. For simplicity, only one control at a time may be bound to a given parameter.
</p>
<h5 id="n:1.2.3.1.5.">1.2.3.1.5. Controls</h5>
<center><div class="fig image"><table id="Fig.1.6" border=1>
<caption>
<strong>Fig. 1.6.</strong> Control View
</caption>
<tr><td><img src="controls.png" alt="fig. 1.6"></td></tr>
</table></div></center>
<p>
The control view of a chain groups together all of the controls bound to parameters of modules in that chain. The default mode of controls is <i>Manual</i>. Right click on a control to bring up a menu which will allow you to select one of the available control I/O methods to use. When <i>Control Voltage</i> (CV) is selected, a CV input port will be created on the containing mixer strip's JACK client. The control will now accept values from that input. A control bound and configured in this way can then be connected to the output of a Non-DAW control sequence using your favorite connection manager.
</p>
<div class=admonition>
<table width=100%>
<tr><td>NOTE:
All knob and slider controls respond to mousewheel
events. Hold down the `Ctrl` key while scrolling the mousewheel to
achieve finer resolution.
</td></table>
</div>
<h6 id="n:1.2.3.1.5.1.">1.2.3.1.5.1. Control Voltages</h6>
<p>
The control voltage concept should be familiar to anyone who has experience with analog modular synthesizers. MIDI, while having definite advantages in many respects, multiplexes control data in such a way as to make connecting one MIDI control to a parameter involve a significant inconvenience, usually requiring the adjustment of settings on both ends of the connection in order to separate the control data streams.
</p>
<p>
Control Voltages, on the other hand, provide a simple 1:1 source to sink relationship and offer much higher resolution, both in time and value, than can be natively expressed through MIDI. The chief advantage of CV in the context of Non-DAW is the ease with which an control sequence can be connected to a mixer module parameter. If you have a MIDI controller that you'd like to use to control parameters of Non-Mixer, consider <i>jm2cv</i>, a JACK MIDI to Control Voltage daemon which was written by Peter Nelson specifically for use with Non-Mixer. jm2cv can be acquired by:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
git clone git://fuzzle.org/jm2cv.git
</pre></td></tr>
</table></div>
<div class=admonition>
<table width=100%>
<tr><td>NOTE:
The use of Control Signals (OSC) should be preferred for most types
of parameter automation, as LADSPA plugins are incapable of
processing Control Voltage signals at full audio resolution anyway.
</td></table>
</div>
<h5 id="n:1.2.3.1.6.">1.2.3.1.6. Spatialization </h5>
<h6 id="n:1.2.3.1.6.1.">1.2.3.1.6.1. Spatializer Module</h6>
<center><div class="fig image"><table border=1>
<tr><td><img src="spatializer-module.png" alt="fig. "></td></tr>
</table></div></center>
<p>
The Spatializer Module included with Non Mixer allows one to not only control the position of a sound source (angle and elevation), but also to control it's apparent distance from the listener.
</p>
<p>
Distance cues are based on physical properties--the speed of sound in air, the damping effect of humidity, the ratio of reverb early and late reflections, the volume of the sound.
</p>
<p>
In legacy mixers, all of these properties must be controlled individually by the engineer. This is nearly always a process of trial and error. Much of a studio engineers' skill lies in his ability to guess at these values and arrive at a reasonably realistic sounding result.
</p>
<p>
Non Mixer eliminates the guesswork and combines all of these controls into a single spatialization point encoding both a sound source's position relative to the listener and its distance. No matter where the point is placed, the result will be realistic.
</p>
<p>
Use of the Spatializer Modules eliminates much complexity from the mixing process. No more back and forth, no more guessing at values for reverb sends and predelay and EQ. The Spatializer does it all for you.
</p>
<p>
The B-Format outputs of the Spatializer Module are in the order standard order WXYZ.
</p>
<p>
All Spatializer Module instances will present controls and aziumuth, elevation, and radius. Additionally, a <i>Highpass</i> control is provided to compensate for the proximity effect in close-mic'd signals. The default cutoff is 200Hz. Adjust it according to the nature of the input signal.
</p>
<p>
A Spatializer Module fed stereo input will perform stereo encoding and will present a <i>Width</i> control.
</p>
<h7 id="n:1.2.3.1.6.1.1.">1.2.3.1.6.1.1. Reverb Routing</h7>
<p>
The Spatializer module is intended to work with an external reverb engine having Ambisonics B-Format inputs for early reflections and a Mono input for reverb tail (and, of course, B-Format outputs).
</p>
<center><div class="fig image"><table border=1>
<tr><td><img src="reverb-routing.png" alt="fig. "></td></tr>
</table></div></center>
<p>
The Spatializer Module has two sets auxiliary outputs for reverb send. One, consisting of a single mono signal, is intended to be connected to the input of a reverb tail, otherwise known as a diffuse field. Another set of outputs in B-Format is indended to be connected to the B-Format inputs of an early reflection reverb engine. The output of the reverb engine should be 100% 'wet'.
</p>
<p>
I have crafted several jconvolver config files that meet these specifications. They can be found in <a class=ext href="http://non.tuxfamily.org/ambiverb.tar.bz2">ambiverb.tar.bz2</a>
</p>
<p>
The main outputs of the strip should go to a master bus, into which the output of the reverb engine is also fed.
</p>
<h6 id="n:1.2.3.1.6.2.">1.2.3.1.6.2. LADSPA Plugins</h6>
<p>
There are several Ambisonics panners/encoders released as LADSPA plugins. When one of these plugins is added to a strip, Non Mixer will detect its parameter signature and create a Spatialization Control for it just as with the Spatializer Module.
</p>
<center><div class="fig image"><table id="Fig.1.7" border=1>
<caption>
<strong>Fig. 1.7.</strong> Spatialization Control on a Strip
</caption>
<tr><td><img src="spatialization-on-strip.png" alt="fig. 1.7"></td></tr>
</table></div></center>
<p>
Whenever a module is added to a strip whose set of parameters include parameters named Azimuth and Elevation (and perhaps Radius), Non-Mixer will detect this and automatically attach a Spatializer control to these parameters. The Spatializer will be displayed at the bottom of the mixer strip. A larger version of the control may also be found in the Module Parameter Editor.
</p>
<center><div class="fig image"><table id="Fig.1.8" border=1>
<caption>
<strong>Fig. 1.8.</strong> Spatialization Control in the Module Parameter Editor
</caption>
<tr><td><img src="spatialization-in-mpe.png" alt="fig. 1.8"></td></tr>
</table></div></center>
<p>
The spatialization control may be visualized as moving the sound source across the surface of a hemispherical dome enclosing the listener.
</p>
<p>
The output of the spatializing plugin may be routed into a decoding plugin following it the same strip or, more usefully, the output of a number of Ambisonic panning plugins on different strips may be routed (through JACK) into a single master decoder instance on a final strip.
</p>
<h2 id="n:1.3.">1.3. Spatialization Console</h2>
<center><div class="fig image"><table border=1>
<tr><td><img src="spatialization-console.png" alt="fig. "></td></tr>
</table></div></center>
<p>
The Spatialization Console allows the user to view and control all of the source positions in an Ambisonics mix at once.
</p>
<p>
The visibility of the Spatialization Console may be toggled with the <tt>F8</tt> key.
</p>
<p>
The console will display a point for each Spatializer Module or other Ambisonics panner plugin contained in the mix.
</p>
<p>
There are two projections available, Planar and Spherical. The range of the view can be adjusted with the range dropdown in the lower lefthand corner.
</p>
<h2 id="n:1.4.">1.4. Projects</h2>
<p>
A Non-Mixer project is a directory where Non-Mixer keeps the strip settings, project specific settings, and some meta-data. A project is completely self-contained. You can rename a project as simply as:
</p>
<div class="fig example"><table width=100%><tr><td><pre>
$ mv Project-A Project-B
</pre></td></tr>
</table></div>
<h3 id="n:1.4.1.">1.4.1. JACK I/O</h3>
<p>
Each mixer strip is presented as a separate JACK "client". This helps to avoid the necessity of internally duplicating JACK's routing logic and, with JACK2, permits the possibility of parallel execution of mixer strip signal chains.
</p>
<p>
The JACK client name of each strip will correspond to the name of the strip.
</p>
<div class=admonition>
<table width=100%>
<tr><td>NOTE:
The JACK API makes implementing this far more difficult and kludgey than it should have to be.
Please petition your local JACK developer to accept jack_client_set_name() into the API.
</td></table>
</div>
<center><div class="fig image"><table id="Fig.1.9" border=1>
<caption>
<strong>Fig. 1.9.</strong> Patchage
</caption>
<tr><td><img src="non-mixer-and-non-daw-in-patchage.png" alt="fig. 1.9"></td></tr>
</table></div></center>
</div>
</body>
</html>

544
mixer/doc/MANUAL.mu Normal file
View File

@ -0,0 +1,544 @@
! title Non Mixer User Manual
! author Jonathan Moore Liles #(email,male@tuxfamily.org)
-- Table Of Contents
: Non Mixer User Manual
/ Mixer
< non-mixer-complex.png
The Non-Mixer is a stand-alone audio mixer, utilizing JACK as an
audio subsystem. At the time of writing, the architecture of
Non-Mixer is unique. By making the mixer stand-alone, concepts such
as busses, sends, and inserts are eliminated, as the same goals can
be achieved by simply adding more strips to the mixer.
Start by creating a new project (menu item `Project\/New`).
/ New Project
< new-project.png
After the project has been created. Hit `a` or choose `Mixer\/Add
Strip` from the menu to add a new strip to the mixer.
:: Mixer Groups
< group-dropdown.png
Groups serve several purposes. Firstly, they allow for some
organization of strips. Groups also allow parallel relationships of
mixer strips to be made explicit. This has important performance
implications in JACK2. Non Mixer supports an unlimited number of
groups, each of which can contain an unlimited number of mixer
strips.
::: How to Choose Groupings
All strips in a group should be completely parallel with no feedback
loop connections. A typical group might be named 'Input' and contain
all input strips (strips that accept input from Non Timeline and
have outputs all connecting to some master bus).
To put it another way, if you have 100 inputs strips with identical
output configurations (e.g. stereo or B-Format), that all connect to
a master bus, then you have a candidate for a group.
::: Considering JACK Overhead
JACK provides immense flexibility. But, as in most situations, that
flexibility comes with a cost. In JACK the cost is a context switch
per client. This applies /even for many clients which belong to the
same process/, as in Non Mixer. Various factors go into determining
the price of a context switch on any given system. It's not very
expensive, but it does add up. It becomes problematic in sessions
involving many clients (think 100s), each of which having a small
DSP load (often smaller than the cost of JACK's context context
switch). JACK *could* be smart enough to recognize that some clients
belong to the same process and could be executed serially without
requiring a context switch, but at the time of writing neither JACK1
nor JACK2's scheduling is that smart.
If you're mixing a normal song (couple of dozen tracks) at low
latency, this overhead will probably account for less than 1% of the
total DSP load. If you're mixing an entire orchestra at ultra-low
latency, then it might account for a quarter or more of the total
DSP load.
Groups mitigate this cost by reducing the number of JACK clients
required for a mix. Strips in a group will execute serially without
context switches or thread synchronization--reducing the total JACK
overhead. However, if you have several groups, then they may all by
run in parallel by JACK2.
A mixer which uses a single JACK client (which is basically the way
everything other than Non Mixer has been designed) is not a viable
solution by this author's definition, because such a mixer cannot be
from/to any other JACK clients without introducing an extra period
of latency.
To illustrate this point here are some figures from an actual song
session including the whole Non suite plus a sampler, a synth and an
ambisonics convolution reverb with a total of 13 strips in 4 groups
in different configurations on the same system.
JACK's DSP load figures are interpreted thus: if at a 2.7ms software
latency setting the average time a proces cycle takes to complete is
2.7ms, then the DSP load is 100%. The usable ceiling on DSP load is
80%. This is true for both JACK1 and JACK2. The difference is that
JACK2 may use all available CPU cores to execute the graph (if
there are enough clients in parallel signal flow).
32-bit Intel Core2 Duo @1.6Ghz -r 48000 -p 256 -n 2 (5.3ms)
[[ JACK Ver, Groups, DSP Load
[[ JACK1, N, 39%
[[ JACK1, Y, 27%
[[ JACK2, N, 24%
[[ JACK2, Y, 31%
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 256 -n 2 (5.3ms)
[[ JACK Ver, Groups, DSP Load
[[ JACK1, N, 28%
[[ JACK1, Y, 12%
[[ JACK2, N, 12%
[[ JACK2, Y, 11%
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 128 -n 2 (2.7ms)
[[ JACK Ver, Groups, DSP Load
[[ JACK1, N, 29%
[[ JACK1, Y, 17%
[[ JACK2, N, 17%
[[ JACK2, Y, 17%
AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 32 -n 2 (0.7ms)
[[ JACK Ver, Groups, DSP Load
[[ JACK1, N, x
[[ JACK1, Y, x
[[ JACK2, N, 43%
[[ JACK2, Y, 41%
As you can see, for multiprocessor systems, JACK2 clearly has an
advantage even without grouping.
Of course, results will vary depending on the system and the mix. On
the dual core system, performance actually degraded with JACK2 when
using groups--this is because the number of parallel flows that
JACK2 detected was reduced and the second core was being under
utilized. Similarly, the performance of the 8-core AMD system
doesn't seem that great even in the ungrouped mode--this is because
the DSP load of each individual client is around the same as the
cost of the context switching. It's a wash either way (if each strip
had more or more complex modules on it, then the ungrouped mode
would probably perform better). Since JACK1 cannot take advantage of
more than 1 CPU core, there is no benefit to parallelism and grouped
mode always outperforms ungrouped mode.
So, for maximum capacity the combination of a multicore CPU with
JACK2 and mixer groups is best.
# All strips in a group *MUST* have the same output configuration. All
# outputs will be mixed together by identity. That is, the 'AUX \(A\)'
# outputs of each strip will be mixed together into a single 'AUX \(A\)'
# output of the group. A strip within a group whose output
# configuration differs from the group configuration will be marked as
# invalid and will not be executed.
::: Creating a New Group
Groups can be created by selecting the group dropdown on any mixer
strip and choosing 'New Group'. A window will popup asking for a
group name. Group names must be unique. The group will then be
created and the selected strip added to it.
::: Adding a Strip to an Existing Group
To add a strip to an existing group, simply select a group name from
the group dropdown on the strip.
::: Removing a Strip from a Group
Select '---' from the group dropdown. The strip will be removed from
the group and will run in an independent JACK client.
::: Removing a Group
Groups are destroyed automatically as soon as they contain zero
strips.
::: Monitoring Group DSP Load
Above the grop dropdown on each strip is a DSP load meter for the
selected group. For ungrouped strips or strips which are the only
one in their group, this is simply the DSP load of the single strip.
If DSP usage goes up when strips are fed silence, then you're
probably running a plugin which has denormal issues.
:: Mixer Strips
/ Mixer Strip
< single-strip.png
Each mixer strip has a name and color, each of which may be defined
by the user. Names, but not colors, must be unique. In addition,
each strip has controls to move it left or right (the arrows) in the
display and to remove it entirely (the 'X').
Strips start out in /narrow/ mode, with the /fader/ view
enabled. Click the desired button to toggle the mode or view.
Each strip has a context menu which lists the available options
and their associated key-bindings. To bring up the context menu, `Right
The fader view comprises a large gain control and digital peak meter
indicator. These are automatically connected to the default gain and
meter modules of the strip's signal chain.
To see how an audio signal traveling through this strip will be
processed, switch to its /signal/ view.
::: Navigation
A strip is focused when you click on it. Focus can be moved among
strips with the `Tab` and `Shift-Tab` keys.
::: Control
The focused strip can be moved in the display order via the `[` and
`]` keys. `Delete` removes a strip (with confirmation dialog). `n`
and `w` set the focused strip's width to /narrow/ or /wide/,
respectively, and `f` and `s` switch between /fader/ and /signal/
views. The strip's context menu can be invoked without the mouse by
hitting the `Menu` key (assuming your keyboard has one).
::: Signal Chain
The signal chain view of a mixer strip provides a way to view and
manipulate the signal processing of a mixer strip.
:::: Modules
/ Modules
< modules.png
All signal processing in Non Mixer occurs in /Modules/. Modules are
signal processing abstractions providing ports for audio and control
I\/O and, in addition, some simple user interface. Sink and source
modules carry audio out of and into JACK.
Modules are displayed as named blocks. Some modules (e.g. the Meter
module) may have additional GUI components.
Each module has zero or more audio I\/O ports and zero or more
control ports. Audio routing between modules is handled
automatically. Modules with mono audio configurations (one channel
in, one channel out) can be automatically adjusted to support any
number of discrete channels. Modules with more (related) channels,
however, introduce restrictions on the order in which modules can be
chained.
An indicator in the upper left-hand corner of each module block
indicates whether the module has any parameters bound to controls.
Non Mixer has several built-in modules. They are:
= JACK
= Performs JACK I\/O
= Gain
= Applies gain in dB
= Meter
= Digital Peak Meter
= Mono Pan
= Performs intensity panning of a mono signal into a stereo signal.
= Aux
= Provides auxiliary outputs
= Spatializer
= Provides advanced Ambisonics spatialization with distance simulation.
= Plugin
= Hosts a LADSPA plugin
::::: OSC Control
The input parameters of all modules are controllable via OSC,
regardless of whether the parameter is set as controllable.
The format of the automatically generated OSC path names is as follows:
> /strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]
The UDP port that the OSC server binds to can be set by providing
the `--osc-port` command-line option. Without this option, a random
port will be bound automatically (the exact OSC URL will always be
printed to the console as a line beginning with "OSC: ").
The default path accepts a float value between 0.0 and 1.0 (a
Control Voltage like signal) which will be automatically scaled to
the allowable range of the control.
A path ending in \/unscaled is also available, which accepts exact values,
which will be clamped to the allowable range. For example:
> /strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]/unscaled
If same module\/plugin is used twice in a signal chain
(e.g. multiple Gain stages), then a position dependent sequence
number will be appended to the module name. For example, a path
might look like the following:
> /strip/Foo/Gain.1/Gain_(dB)
For the second instance of the Gain module on the strip named 'Foo'.
There's a possibility to get exact OSC path for module controls.
For this you need to switch strip mode to 'Signl', right click a
module, for example 'Gain', and open 'Edit parameters' dialog. OSC
path will be shown in a statusbar of the main window when you
hover a parameter.
Non-DAW accesses these same signals via a more advanced signal
routing layer on top of OSC. Any module parameter is easily
controlled via Control Sequences in Non-DAW without the need to
specify an OSC URL.
::::: MIDI Control
Automatic translation between MIDI and Non's OSC Signals can be
achieved by adding the headless program `non-midi-mapper` (included in the
Non-Mixer distribution) to an NSM session.
Non-MIDI-Mapper provides JACK MIDI input and output ports that can be
connected to a suitable controller device.
In Non-Mixer, the `Remote Control\/Start Learning` menu item enters learning
mode in which Non Mixer can be taught which controls to associated with which
MIDI messages by clicking a control in Non-Mixer and moving the desired control
on the MIDI device. `Remote Control\/End Learning` ends the learning session.
The mapping will be saved with the NSM session.
::::: Manipulation
Left-clicking on a module brings up a Module Parameter Editor window
for the selected module.
Right-clicking on a module brings up a context menu allowing you
manipulate the module, as well as to pick a new module to insert
before the selected one in the chain.
Middle-clicking on a module toggles its activation state (the audio
signal will bypass inactive modules).
Control+Right-clicking on a module causes it to be removed from the
chain (modules added by default cannot be removed).
The focused module may also be controlled via the keyboard. `Menu`
brings up the context menu for the focused module. `Space` opens the
module parameter editor, `b` toggles the bypassed state, and
`Delete` removes the module from the chain (without confirmation!).
`Control-X`, `Control-C` and `Control-V`, cut, copy, and paste
modules, respectively. Modules may be copied within or across chain
boundaries. The normal module I\/O constraints also apply to pasted
modules.
::::: Module Parameter Editor
/ Module Parameter Editor
< module-parameter-editor.png
The Module Parameter Editor is used to alter the values of a
module's parameters, and in addition, to bind its parameters to
controls. A menu button in the upper left-hand corner allows you to
select between knob, vertical slider and horizontal slider controls.
Underneath each control is a bind button. Clicking adds a new
control to the chain's /Controls/ view and binds it to the parameter
in question. For simplicity, only one control at a time may be bound
to a given parameter.
::::: Controls
/ Control View
< controls.png
The control view of a chain groups together all of the controls
bound to parameters of modules in that chain. The default mode of
controls is /Manual/. Right click on a control to bring up a menu
which will allow you to select one of the available control I\/O
methods to use. When /Control Voltage/ (CV) is selected, a CV input
port will be created on the containing mixer strip's JACK
client. The control will now accept values from that input. A
control bound and configured in this way can then be connected to
the output of a Non-DAW control sequence using your favorite
connection manager.
{ NOTE:
{ All knob and slider controls respond to mousewheel
{ events. Hold down the `Ctrl` key while scrolling the mousewheel to
{ achieve finer resolution.
:::::: Control Voltages
The control voltage concept should be familiar to anyone who has
experience with analog modular synthesizers. MIDI, while having
definite advantages in many respects, multiplexes control data in
such a way as to make connecting one MIDI control to a parameter
involve a significant inconvenience, usually requiring the
adjustment of settings on both ends of the connection in order to
separate the control data streams.
Control Voltages, on the other hand, provide a simple 1:1 source to
sink relationship and offer much higher resolution, both in time and
value, than can be natively expressed through MIDI. The chief
advantage of CV in the context of Non-DAW is the ease with which an
control sequence can be connected to a mixer module parameter. If
you have a MIDI controller that you'd like to use to control
parameters of Non-Mixer, consider /jm2cv/, a JACK MIDI to Control
Voltage daemon which was written by Peter Nelson specifically for
use with Non-Mixer. jm2cv can be acquired by:
> git clone git://fuzzle.org/jm2cv.git
{ NOTE:
{ The use of Control Signals (OSC) should be preferred for most types
{ of parameter automation, as LADSPA plugins are incapable of
{ processing Control Voltage signals at full audio resolution anyway.
::::: Spatialization
:::::: Spatializer Module
< spatializer-module.png
The Spatializer Module included with Non Mixer allows one to not
only control the position of a sound source (angle and elevation),
but also to control it's apparent distance from the listener.
Distance cues are based on physical properties--the speed of sound
in air, the damping effect of humidity, the ratio of reverb early and
late reflections, the volume of the sound.
In legacy mixers, all of these properties must be controlled
individually by the engineer. This is nearly always a process of
trial and error. Much of a studio engineers' skill lies in his
ability to guess at these values and arrive at a reasonably
realistic sounding result.
Non Mixer eliminates the guesswork and combines all of these
controls into a single spatialization point encoding both a sound
source's position relative to the listener and its distance. No
matter where the point is placed, the result will be realistic.
Use of the Spatializer Modules eliminates much complexity from the
mixing process. No more back and forth, no more guessing at values
for reverb sends and predelay and EQ. The Spatializer does it all
for you.
The B-Format outputs of the Spatializer Module are in the order
standard order WXYZ.
All Spatializer Module instances will present controls and aziumuth,
elevation, and radius. Additionally, a /Highpass/ control is
provided to compensate for the proximity effect in close-mic'd
signals. The default cutoff is 200Hz. Adjust it according to the
nature of the input signal.
A Spatializer Module fed stereo input will perform stereo encoding
and will present a /Width/ control.
::::::: Reverb Routing
The Spatializer module is intended to work with an external reverb
engine having Ambisonics B-Format inputs for early reflections and a
Mono input for reverb tail (and, of course, B-Format outputs).
< reverb-routing.png
The Spatializer Module has two sets auxiliary outputs for reverb
send. One, consisting of a single mono signal, is intended to be
connected to the input of a reverb tail, otherwise known as a
diffuse field. Another set of outputs in B-Format is indended to be
connected to the B-Format inputs of an early reflection reverb
engine. The output of the reverb engine should be 100% 'wet'.
I have crafted several jconvolver config files that meet these
specifications. They can be found in #(url,http:\/\/non.tuxfamily.org\/ambiverb.tar.bz2,ambiverb.tar.bz2)
The main outputs of the strip should go to a master bus, into which
the output of the reverb engine is also fed.
:::::: LADSPA Plugins
There are several Ambisonics panners\/encoders released as LADSPA
plugins. When one of these plugins is added to a strip, Non Mixer
will detect its parameter signature and create a Spatialization
Control for it just as with the Spatializer Module.
/ Spatialization Control on a Strip
< spatialization-on-strip.png
Whenever a module is added to a strip whose set of parameters
include parameters named Azimuth and Elevation (and perhaps Radius),
Non-Mixer will detect this and automatically attach a Spatializer
control to these parameters. The Spatializer will be displayed at
the bottom of the mixer strip. A larger version of the control may
also be found in the Module Parameter Editor.
/ Spatialization Control in the Module Parameter Editor
< spatialization-in-mpe.png
The spatialization control may be visualized as moving the sound
source across the surface of a hemispherical dome enclosing the
listener.
The output of the spatializing plugin may be routed into a decoding
plugin following it the same strip or, more usefully, the output of
a number of Ambisonic panning plugins on different strips may be
routed (through JACK) into a single master decoder instance on a
final strip.
:: Spatialization Console
< spatialization-console.png
The Spatialization Console allows the user to view and control all
of the source positions in an Ambisonics mix at once.
The visibility of the Spatialization Console may be toggled with the `F8` key.
The console will display a point for each Spatializer Module or
other Ambisonics panner plugin contained in the mix.
There are two projections available, Planar and Spherical. The range
of the view can be adjusted with the range dropdown in the lower
lefthand corner.
:: Projects
A Non-Mixer project is a directory where Non-Mixer keeps the strip
settings, project specific settings, and some meta-data. A project
is completely self-contained. You can rename a project as simply as:
> $ mv Project-A Project-B
::: JACK I/O
Each mixer strip is presented as a separate JACK "client". This
helps to avoid the necessity of internally duplicating JACK's
routing logic and, with JACK2, permits the possibility of parallel
execution of mixer strip signal chains.
The JACK client name of each strip will correspond to the name of the strip.
{ NOTE:
{ The JACK API makes implementing this far more difficult and kludgey than it should have to be.
{ Please petition your local JACK developer to accept jack_client_set_name() into the API.
/ Patchage
< non-mixer-and-non-daw-in-patchage.png

23
mixer/doc/Makefile Normal file
View File

@ -0,0 +1,23 @@
SRCS=$(wildcard *.mu)
OBJS=$(SRCS:.mu=.html)
%.html: %.mu
@ echo Mupping $<...
@ mup.wrapper html $<
.PHONY: all clean
all: $(OBJS)
upload: all
@ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-mixer.tuxfamily.org-web/htdocs
install:
@ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer
@ cp $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer
# @ ln -sf $(PIXMAP_PATH)/logo.png $(DOCUMENT_PATH)
clean:
rm -f $(OBJS)

BIN
mixer/doc/controls.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

1
mixer/doc/icon.png Symbolic link
View File

@ -0,0 +1 @@
../icons/hicolor/256x256/apps/non-mixer.png

BIN
mixer/doc/mixer-strips.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
mixer/doc/modules.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

461
mixer/doc/mup.css Normal file
View File

@ -0,0 +1,461 @@
/* Example CSS Style for MUP */
body
{
font: normal normal 14pt "Helvetica", sans-serif;
/* background: url("http://non.tuxfamily.org/background-pattern.png") fixed; */
background-color: #121212; color: lightgray; padding: 0; margin: 0;
}
a:link {
color: white;
}
a:visited {
color: olive;
}
a:active {
color: white;
}
a:link:hover {
text-decoration: underline;
}
/* #(url) */
a.ext:link {
color: red;
text-decoration: none;
border-bottom: dashed silver 1;
}
a.ext:visited {
color: darkred;
border-bottom: dashed silver 1;
text-decoration: none;
}
/* #(ref) */
a.int:link {
border-bottom: dashed silver 0.15em;
}
a.int:link:hover {
text-decoration: none;
color: white;
}
/*
a[href^="#"]:link {
border-bottom: dashed silver 0.15em;
}
a[href^="#"]:link:hover {
text-decoration: none;
color: white;
}
*/
p:contains("Warning:") {
background: #d00;
color: white;
border: dotted gray 0.5em;
display: block;
}
/* First letter of first paragraph of every chapter */
/*
h1 + p:first-letter {
text-transform: uppercase;
float: left;
line-height: 0.8em;
font-size: 350%;
font-family: Serif;
letter-spacing: 0;
margin-right: 0.1em;
margin-top: 0.1em;
border: solid gray 1px;
padding: 1px;
color: #d00;
text-shadow: #666 3px 3px 3px;
}
*/
/* First paragraph of every chapter */
/*
h1 + p {
text-indent: 0;
}
*/
/* cover */
#cover * {
background: transparent;
}
#cover {
position: relative;
/* background: #da0;*/
background: #555;
color: #aaa;
text-align: center;
margin: 0;
padding: 0.5em;
border-top: 4px solid black;
border-bottom: 4px solid black;
}
#cover h1, #cover h3 {
text-shadow: #222 0.2em 0.2em 0.2em;
color: white;
border: none;
letter-spacing: 0.2em;
line-height: 0.8em;
margin-left: 2em;
margin-right: 2em;
}
#cover h1:before, #cover h1:after {
/* content: "::"; */
font-size: 300%;
color: black;
}
#cover h1:before {
position: absolute;
top: 0.2em;
left: 0.1em;
}
#cover h1:after {
position: absolute;
top: 0.2em;
right: 0.1em;
}
#cover hr {
display: none;
}
hr:first-child {
display: none;
}
hr {
height: 0.2em;
background: #555;
color: #555;
margin-left: 0.5em;
}
#cover a:visited {
color: black;
}
/* endnote */
#endnote {
color: black;
}
/* TOC */
#toc {
position: relative;
}
#toc hr {
}
#toc h1 {
}
#toc ul {
font-size: 125%;
font-weight: bold;
margin-bottom: 1em;
}
#toc ul ul {
font-size: 90%;
font-weight: normal;
margin-bottom: 0;
}
#toc li {
list-style: none;
}
#toc a:link {
border-bottom: 0;
}
/* */
#body {
position: relative;
margin: 0 auto;
padding: 0.5em;
max-width: 900px;
background-color: #1c1c1c;
}
/* ;, : */
h1 {
color: #fff;
border-bottom: solid #444 0.1em;
text-shadow: 1px 1px 2px #000;
}
/* ::, :::, ::::, :::::, :::::: */
h2, h3, h4, h5, h6 {
color: #fff;
text-shadow: 1px 1px 2px #000;
}
/* tables, figures */
.fig caption {
color: gray;
text-align: center;
/* Required for Mozilla */
margin: auto;
}
.fig table {
border: none;
margin: auto;
/* border-collapse: collapse; */
}
/* / */
.fig.table th {
border: none;
background: gray;
color: black;
}
/* [ */
.fig.table td {
border: none;
background: silver;
color: black;
padding-left: 1em;
padding-right: 1em;
padding-top: 0.2em;
padding-bottom: 0.2em;
}
/* < */
.fig.image table {
border: none;
background: transparent;
max-width: 100%;
}
.fig.image tr, .fig.image td {
border: none;
background: transparent;
padding: 0;
}
.fig.image img
{
max-width: 900px;
}
/* */
p {
margin-right: 2%;
text-align: justify;
text-indent: 1em;
}
/* > */
.example *
{
background: transparent;
}
.example table
{
margin: 0;
padding: 0;
table-layout: fixed;
width: 100%;
caption-side: top;
overflow: auto;
}
.example caption
{
caption-side: top;
}
.example {
}
.example p {
display: inline;
margin: 0;
padding: 0;
text-align: center;
}
.example pre {
margin-top: 0;
font-family: Monospace;
padding: 1em;
border: solid 1px black;
background: #222;
color: white;
display: block;
overflow: auto;
/* Every browser should support border radii */
/* -moz-border-radius: 0.5em;
border-radius: 0.5em; */
}
/* " */
/*
.quote:before {
float: left;
font-size: 500%;
content: "\201C";
}
*/
/*
blockquote:after {
content: "\201D";
}*/
.quote blockquote {
padding: 0.5em;
margin-left: 0.5em;
font-family: Serif;
border-left: solid 0.4em gray;
/* background: #333; */
color: white;
}
/* ^ */
small {
/*
color: silver;
font-size: 50%;
*/
}
.footnote p {
color: silver;
margin: 0;
}
/* Popup footnotes */
.footnote p {
display: none;
}
.footnote p:target {
display: block;
overflow: auto;
position: fixed;
left: auto;
bottom: 0;
right: 0;
max-width: 50%;
border: solid 0.3em white;
-moz-border-radius: 0.5em;
background: black;
padding: 0.2em;
}
/* { */
.admonition * {
background: transparent;
color: white;
}
.admonition dl
{
display: table;
margin: 0;
padding: 0;
background: #333;
border: dotted black 0.3em;
width: 90%
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.admonition dt
{
display: table-cell;
vertical-align: center;
border-right: solid silver 0.4em;
font-weight: bold;
font-size: 115%;
font-family: Serif;
background: gray;
width: 0;
text-shadow: black 0.15em 0.15em 0.15em;
}
.admonition dd
{
padding-left: 0.4em;
display: table-cell;
width: 100%;
text-align: justify;
}
.admonition table
{
margin: 0;
padding: 0;
background: #333;
border: dotted black 0.3em;
width: 90%
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.admonition td {
width: 100%;
text-align: justify;
}
.admonition td:first-child:contains("Warning:") {
background: #900;
}
.admonition td:first-child:contains("Caution:") {
background: #960;
}
.admonition td:first-child:contains("Note:") {
background: #690;
}
.admonition td:first-child {
border-right: solid silver 0.4em;
font-weight: bold;
font-size: 115%;
font-family: Serif;
background: gray;
width: 0;
text-shadow: black 0.15em 0.15em 0.15em;
}
/* #(b) */
/* b { color: olive; } */
/* #(c) */
tt {
color: #7f0;
}
/* ! keywords ... */
p em {
color: gray;
font-style: normal;
font-weight: bold;
}
/* *, + */
/* Bullet, numbe */
li {
color: #f0f;
}
/* Text */
li span, li p {
color: white;
}
li p {
color: red;
display: block;
}
ul {
list-style-type: square;
}
dl {
margin-left: 2%;
margin-top: 1em;
}
/* = */
dt {
background: #181818;
padding: 0.2em;
font-variant: small-caps;
font-weight: bold;
color: #f0f;
}
dd {
color: white;
text-align: justify;
margin-right: 5%;
}
dt a:link, dt a:visited {
color: #f0f;
}
dt a:link:hover {
color: silver;
text-decoration: underline;
}

BIN
mixer/doc/new-project.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
mixer/doc/single-strip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="512"
height="512"
id="svg3137">
<defs
id="defs3139">
<linearGradient
x1="0"
y1="150"
x2="300"
y2="150"
id="linearGradient3813"
xlink:href="#SVGID_1_"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-5.5328369e-8,-300.00001)" />
<linearGradient
x1="149.9995"
y1="4"
x2="149.9995"
y2="304"
id="SVGID_1_"
gradientUnits="userSpaceOnUse">
<stop
id="stop6"
style="stop-color:#fffdf7;stop-opacity:1"
offset="0.3398" />
<stop
id="stop22"
style="stop-color:#20fb00;stop-opacity:1"
offset="0.99440002" />
</linearGradient>
<linearGradient
x1="0"
y1="150"
x2="300"
y2="150"
id="linearGradient3135"
xlink:href="#SVGID_1_"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7066667,0,0,1.7066667,-186.78068,-642.00002)" />
</defs>
<metadata
id="metadata3142">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-130,186.78068)"
id="layer1">
<rect
width="512"
height="512"
x="-186.78067"
y="-642"
transform="matrix(0,1,-1,0,0,0)"
id="rect24"
style="fill:url(#linearGradient3135);fill-opacity:1" />
<rect
width="435.42188"
height="65.710075"
x="173.40906"
y="196.90019"
id="rect28"
style="fill:none" />
<g
id="g3571">
<path
d="m 321.16035,174.86778 0,94.91448 -21.57414,0 0,-64.07754 -8.61793,64.07754 -15.30122,0 -9.08693,-62.6119 0,62.6119 -21.57414,0 0,-94.91448 31.95083,0 c 0.93797,5.70629 1.9346,12.42866 2.98989,20.16713 l 3.40028,24.15365 5.62803,-44.32078 32.18533,0"
id="path3531"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 355.74932,174.86778 0,94.91448 -24.68128,0 0,-94.91448 24.68128,0"
id="path3533"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 415.78171,174.86778 -8.61793,41.97576 13.01483,52.93872 -22.86389,0 c -2.73589,-9.45822 -5.23724,-20.96832 -7.50405,-34.53035 -0.62537,5.97982 -1.48521,12.33089 -2.57952,19.05325 l -2.34501,15.4771 -24.03641,0 8.91106,-52.93872 -8.91106,-41.97576 23.86053,0 c 0.4299,2.61869 1.28973,6.9765 2.57952,13.07345 1.01614,4.65103 1.85644,8.91113 2.52089,12.78034 l 5.27628,-25.85379 20.69476,0"
id="path3535"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 423.69613,174.86778 41.15501,0 0,18.99462 -16.47373,0 0,17.99799 15.41848,0 0,18.05661 -15.41848,0 0,20.87064 18.11524,0 0,18.99462 -42.79652,0 0,-94.91448"
id="path3537"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 343.65625,361.65625 0,94.90625 24.65625,0 0,-42.78125 c 3.40023,5e-5 5.49954,0.60095 6.28125,1.8125 0.82072,1.21163 1.24997,4.35667 1.25,9.4375 l 0,31.53125 22.90625,0 0,-25.03125 c -7e-5,-7.66035 -0.22639,-12.31937 -0.65625,-14 -0.3909,-1.71964 -1.41321,-3.62386 -3.09375,-5.65625 -1.68065,-2.0323 -4.95836,-3.63211 -9.84375,-4.84375 5.39348,-0.50804 9.00677,-2.05327 10.84375,-4.59375 1.83687,-2.54038 2.74993,-7.48814 2.75,-14.875 -7e-5,-8.09022 -1.31895,-13.98231 -3.9375,-17.65625 -2.57957,-3.71285 -5.91969,-6.00723 -10.0625,-6.90625 -4.10382,-0.89883 -11.97812,-1.34366 -23.625,-1.34375 l -17.46875,0 z M 368.3125,377.875 c 2.85307,7e-5 4.81971,0.46833 5.875,1.40625 1.09431,0.93809 1.65622,2.92814 1.65625,5.9375 l 0,5.21875 c -3e-5,4.182 -0.58536,6.65589 -1.71875,7.4375 -1.09438,0.74264 -3.0376,1.12506 -5.8125,1.125 l 0,-21.125 z"
transform="translate(130,-186.78068)"
id="path3560"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
</g>
<polygon
points="300,0 300,110.426 150,188 0,110.426 0,0 "
transform="matrix(1.7066667,0,0,1.7066667,130,-186.78068)"
id="polygon26"
style="fill:#000200" />
<g
id="g3518">
<path
d="m 247.89101,-128.45434 c -6e-5,1.1566 -0.40483,2.19744 -1.21431,3.12252 -0.8096,0.9253 -1.85043,1.38789 -3.12252,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98988,0.69389 -3.58516,1.3879 -5.37771,4.22129 -5.37767,8.50019 l 0,82.226277 c -4e-5,4.510316 -1.33,8.44237 -3.98988,11.796175 -3.2382,4.279007 -8.03762,6.418507 -14.39827,6.418507 -6.12941,0 -10.81318,-2.081676 -14.05133,-6.245034 -2.77558,-3.469453 -4.16336,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c 0,-4.5102 1.32996,-8.44225 3.98989,-11.79618 3.23815,-4.27888 7.97974,-6.41838 14.2248,-6.4185 l 27.40876,0 1.04083,0 0.6939,0.34694 c 1.96597,0.92531 2.94898,2.3131 2.94904,4.16336"
id="path3502"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 261.59539,-128.45434 c -7e-5,1.27225 -0.46266,2.37091 -1.38779,3.29599 -0.92525,0.9253 -2.02391,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19738,-0.46249 -3.12251,-1.38779 -0.92525,-0.92508 -1.38785,-2.02374 -1.38779,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27208,1.2e-4 2.37074,0.40489 3.29599,1.21431 0.92513,0.80966 1.38772,1.90832 1.38779,3.29599"
id="path3500"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 316.23944,-32.523683 c -1.3e-4,4.510316 -1.33009,8.44237 -3.98989,11.796175 -3.23828,4.279007 -7.97987,6.418507 -14.2248,6.418507 -6.12948,0 -10.81325,-2.081676 -14.05132,-6.245034 -2.77566,-3.469453 -4.16345,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42862,-6.59198 -1.61917,-1.61897 -3.87432,-2.42852 -6.76546,-2.42862 -1.15656,1e-4 -2.1974,-0.46249 -3.12251,-1.38779 -0.92527,-0.92508 -1.38786,-2.02374 -1.38779,-3.29599 -7e-5,-1.27202 0.4047,-2.31286 1.21431,-3.12252 0.92512,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01363,1.2e-4 10.6974,2.08179 14.05133,6.24503 2.77545,3.46957 4.16323,7.45945 4.16336,11.96965 l 0,82.226277"
id="path3489"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 363.27506,-32.523683 c -5e-5,2.775586 0.80949,4.972911 2.42862,6.59198 1.61904,1.619093 3.81636,2.428634 6.59198,2.428625 1.27208,9e-6 2.37075,0.462603 3.29599,1.387785 0.92513,0.925197 1.38773,2.023859 1.38779,3.29599 -6e-5,1.156491 -0.46266,2.197329 -1.38779,3.122517 -0.92524,0.92519 -2.02391,1.387785 -3.29599,1.387785 l -27.40876,0 c -4.51032,0 -8.44237,-1.32996 -11.79617,-3.989883 -4.27902,-3.238158 -6.41852,-7.979753 -6.41851,-14.224799 l 0,-82.226277 c -10e-6,-4.5102 1.32995,-8.44225 3.98988,-11.79618 3.23815,-4.27888 7.97975,-6.41838 14.2248,-6.4185 l 27.40876,0 1.04084,0 0.69389,0.34694 c 1.96598,0.92531 2.94899,2.3131 2.94905,4.16336 -6e-5,1.1566 -0.40483,2.19744 -1.21432,3.12252 -0.80959,0.9253 -1.85043,1.38789 -3.12251,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98989,0.69389 -3.58515,1.3879 -5.37771,4.22129 -5.37766,8.50019 l 0,82.226277"
id="path3510"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 390.68381,-128.45434 c -6e-5,1.27225 -0.46266,2.37091 -1.38778,3.29599 -0.92526,0.9253 -2.02392,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19739,-0.46249 -3.12252,-1.38779 -0.92525,-0.92508 -1.38784,-2.02374 -1.38778,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27207,1.2e-4 2.37073,0.40489 3.29599,1.21431 0.92512,0.80966 1.38772,1.90832 1.38778,3.29599"
id="path3508"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 390.68381,-18.819303 c -6e-5,1.156491 -0.46266,2.197329 -1.38778,3.122517 -0.92526,0.92519 -2.02392,1.387785 -3.29599,1.387785 -1.2722,0 -2.37086,-0.40477 -3.29599,-1.214312 -0.8096,-0.925188 -1.21437,-2.02385 -1.21431,-3.29599 -6e-5,-1.272131 0.40471,-2.370793 1.21431,-3.29599 0.80948,-0.925182 1.90814,-1.387776 3.29599,-1.387785 1.27207,9e-6 2.37073,0.462603 3.29599,1.387785 0.92512,0.925197 1.38772,2.023859 1.38778,3.29599"
id="path3506"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 445.32786,-32.523683 c -1.2e-4,6.129397 -2.0818,10.813168 -6.24503,14.051326 -3.46958,2.775572 -7.45946,4.163356 -11.96965,4.163356 l -27.40876,0 c -1.27221,0 -2.37088,-0.40477 -3.29599,-1.214312 -0.80962,-0.925188 -1.21439,-2.02385 -1.21431,-3.29599 -8e-5,-1.272131 0.40469,-2.370793 1.21431,-3.29599 0.80946,-0.925182 1.90813,-1.387776 3.29599,-1.387785 3.46938,9e-6 6.01365,-1.214302 7.63282,-3.642937 1.04075,-1.50342 1.56117,-3.295974 1.56126,-5.377668 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42863,-6.59198 -1.61916,-1.61897 -3.87431,-2.42852 -6.76545,-2.42862 -1.15657,1e-4 -2.1974,-0.46249 -3.12252,-1.38779 -0.92526,-0.92508 -1.38786,-2.02374 -1.38778,-3.29599 -8e-5,-1.27202 0.40469,-2.31286 1.21431,-3.12252 0.92511,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01362,1.2e-4 10.69739,2.08179 14.05132,6.24503 2.77545,3.46957 4.16324,7.45945 4.16336,11.96965 l 0,82.226277"
id="path3491"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 506.06786,-128.45434 c -6e-5,1.1566 -0.40483,2.19744 -1.21431,3.12252 -0.8096,0.9253 -1.85044,1.38789 -3.12252,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98988,0.69389 -3.58516,1.3879 -5.37771,4.22129 -5.37767,8.50019 l 0,82.226277 c -4e-5,4.510316 -1.33,8.44237 -3.98988,11.796175 -3.2382,4.279007 -8.03762,6.418507 -14.39827,6.418507 -6.12941,0 -10.81318,-2.081676 -14.05133,-6.245034 -2.77558,-3.469453 -4.16336,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c 0,-4.5102 1.32996,-8.44225 3.98989,-11.79618 3.23815,-4.27888 7.97974,-6.41838 14.2248,-6.4185 l 27.40875,0 1.04084,0 0.6939,0.34694 c 1.96597,0.92531 2.94898,2.3131 2.94904,4.16336"
id="path3516"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 519.77224,-128.45434 c -7e-5,1.27225 -0.46266,2.37091 -1.38779,3.29599 -0.92525,0.9253 -2.02392,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19738,-0.46249 -3.12251,-1.38779 -0.92525,-0.92508 -1.38785,-2.02374 -1.38779,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27207,1.2e-4 2.37074,0.40489 3.29599,1.21431 0.92513,0.80966 1.38772,1.90832 1.38779,3.29599"
id="path3514"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 574.41628,-32.523683 c -1.2e-4,4.510316 -1.33008,8.44237 -3.98988,11.796175 -3.23828,4.279007 -7.97988,6.418507 -14.2248,6.418507 -6.12948,0 -10.81325,-2.081676 -14.05132,-6.245034 -2.77566,-3.469453 -4.16345,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42862,-6.59198 -1.61917,-1.61897 -3.87432,-2.42852 -6.76546,-2.42862 -1.15656,1e-4 -2.1974,-0.46249 -3.12251,-1.38779 -0.92527,-0.92508 -1.38786,-2.02374 -1.38779,-3.29599 -7e-5,-1.27202 0.4047,-2.31286 1.21431,-3.12252 0.92512,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01363,1.2e-4 10.6974,2.08179 14.05133,6.24503 2.77545,3.46957 4.16323,7.45945 4.16335,11.96965 l 0,82.226277"
id="path3493"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

774
mixer/icons/icon-16x16.xpm Normal file
View File

@ -0,0 +1,774 @@
/* XPM */
static char *icon_16x16[] = {
/* columns rows colors chars-per-pixel */
"512 512 256 2 ",
" c #000201B10001",
". c #05970A5D04FE",
"X c #08080B610707",
"o c #09F70C1F09F7",
"O c #05E1106A044B",
"+ c #08271144066D",
"@ c #08B31B1B05B0",
"# c #0CEC119F0C59",
"$ c #0C651B8009E8",
"% c #105919620E7C",
"& c #12E714E912E7",
"* c #169019791650",
"= c #18181D1D1717",
"- c #1B061D321AF0",
"; c #0D4623CE09A6",
": c #11B324240E88",
"> c #11832BD60D46",
", c #0E6432DD0934",
"< c #12EA32D40DAF",
"1 c #132F3E260C6C",
"2 c #17172704144E",
"3 c #1E4C22501DCB",
"4 c #173D37C611F5",
"5 c #1A5C3D4F14A3",
"6 c #1E543E2318F0",
"7 c #20A129FF1E49",
"8 c #20A137571C9C",
"9 c #21B523D621A5",
"0 c #24C229EF239A",
"q c #2B8A2D8C2B8A",
"w c #295C38D225F3",
"e c #2E2A30642E0E",
"r c #30B13ABB2E2E",
"t c #327E34A63258",
"y c #372E393E3729",
"u c #3ABB3BF33ABB",
"i c #157545C60DCE",
"p c #187F59590EA8",
"a c #1B824832142A",
"s c #1BE555301301",
"d c #224A48481BCD",
"f c #255E5A131CD6",
"g c #1E5E62621394",
"h c #1D4B6CBE1150",
"j c #1F1F75751212",
"k c #2558688D1A8F",
"l c #25D469BB1AE1",
"z c #23687EC3157C",
"x c #26B57A1B19BB",
"c c #2A9C467F257B",
"v c #318742982D83",
"b c #2A185874222B",
"n c #378D42423434",
"m c #3F2B404E3F0E",
"M c #3A65555534DF",
"N c #2C9364312309",
"B c #2BD66ACE21BE",
"V c #331969D02976",
"C c #369D76762BF9",
"Z c #395977772ECF",
"A c #41A853863CD6",
"S c #434368BE3B91",
"D c #443A453B443A",
"F c #479D4AF54545",
"G c #4C2D4D334C25",
"H c #494954AA45F0",
"J c #525255554F4F",
"K c #543155325431",
"L c #572C592E5681",
"P c #5B655C665B65",
"I c #4A4A6666446F",
"U c #515171C74A75",
"Y c #5AD165795743",
"T c #59DA777752D2",
"R c #616177775ADB",
"E c #61AA62AB61AA",
"W c #676768686767",
"Q c #6B786C796B78",
"! c #6AA576ED6603",
"~ c #732D742E732D",
"^ c #777778787777",
"/ c #7B207C217B20",
"( c #2B3C8BF21C61",
") c #287E95EB176D",
"_ c #2B8F93BE1B9C",
"` c #30309D9D1F1F",
"' c #2E6EA7D71BAC",
"] c #3123ABAB1E3B",
"[ c #32B3BB3B1D1D",
"{ c #36B786DC298D",
"} c #336293AA23DE",
"| c #345F9C0D23CE",
" . c #3A9E93A12C1E",
".. c #3B9890792DB9",
"X. c #39709A192A18",
"o. c #36B7A7EC249C",
"O. c #34F5AD8D226D",
"+. c #3C9BA4CD2BDB",
"@. c #3CD8AD762AC6",
"#. c #3AB1B7F226EC",
"$. c #4225876A3619",
"%. c #45459A9A36D2",
"&. c #40A0ACAC2F0F",
"*. c #4096B7612D83",
"=. c #4406A2F0340D",
"-. c #44AEAE53336F",
";. c #4747A4A43838",
":. c #4B5AA4493C00",
">. c #4BE9AD513B70",
",. c #47D1B82E35BF",
"<. c #34DFC51A1EC9",
"1. c #22C0FBFB02B4",
"2. c #2727FBFB0808",
"3. c #2B2BFBFB0C45",
"4. c #2EAFFBFB1090",
"5. c #3252FBFB1454",
"6. c #35F6FBFB18D9",
"7. c #3A5AFBFB1CBD",
"8. c #3A69C8992481",
"9. c #3B89D4162424",
"0. c #3EBFD6152767",
"q. c #3E0BE84E248B",
"w. c #3E3EFBFB2121",
"e. c #42E6D43A2C36",
"r. c #449ADD322C82",
"t. c #4A1FC6303621",
"y. c #4A03D44533D0",
"u. c #4B34D6323506",
"i. c #5252D4693D3D",
"p. c #4242F47326A7",
"a. c #4174FBFB24CD",
"s. c #45C5FBFA29A9",
"d. c #4915FBFA2DC6",
"f. c #4B26E60A32A0",
"g. c #4CC3E94B340C",
"h. c #4C19F58E3198",
"j. c #4DADFBFA32B2",
"k. c #5191FBFB36B6",
"l. c #5353F3B33939",
"z. c #55B5FBFB3AFA",
"x. c #58D8FBFB3EBE",
"c. c #4E4A9791413F",
"v. c #4EE899CC420F",
"b. c #552A91BC499F",
"n. c #5D7D888854B4",
"m. c #63A390105A5A",
"M. c #5401A30946B7",
"N. c #5322AD994374",
"B. c #5535AC0B4686",
"V. c #5833ABBD49DC",
"C. c #593EB7304920",
"Z. c #66CDA9425A5A",
"A. c #6CED878765A5",
"S. c #718892636923",
"D. c #7DD3852F7A24",
"F. c #7B3B98987373",
"G. c #7733AE5D6BE5",
"H. c #57E3C80D44E8",
"J. c #5AA6D4CC467B",
"K. c #6161D38A4DE0",
"L. c #6819CF095656",
"P. c #68A2D4FD561C",
"I. c #5ABAE70643E4",
"U. c #5E08F59F459B",
"Y. c #5C8DFBFB4300",
"T. c #6060FBFB4747",
"R. c #63B9F4F44BF6",
"E. c #6449FBFB4BCA",
"W. c #6A25EAEA5499",
"Q. c #6A95F2F2537E",
"!. c #6BCDFBFB53B5",
"~. c #73DAF55B5D5D",
"^. c #7308FBFB5BA3",
"/. c #7E7EC3C37070",
"(. c #774FE836639E",
"). c #7A7AF4F4653A",
"_. c #7777FBFA60B6",
"`. c #7AFDFBFA64E7",
"'. c #7EBEFBFA696A",
"]. c #848498987D7D",
"[. c #8517AFAF7B7B",
"{. c #8767CACA7999",
"}. c #83AFFBFB6DF6",
"|. c #8F8FE4637DFE",
" X c #86C6FBFB71B1",
".X c #8A8AFBFB7575",
"XX c #8DF4FC2E79E0",
"oX c #91BCFCFC7DFE",
"OX c #83B084B183B0",
"+X c #878788888787",
"@X c #8B198C1A8B19",
"#X c #8D5A93C68ABD",
"$X c #909098988A8A",
"%X c #94A495A594A4",
"&X c #9B5D9C5E9B5D",
"*X c #9292B1A189A9",
"=X c #9D1DA5249999",
"-X c #A2A2B2329B5B",
";X c #A3C1A4C2A3C1",
":X c #A7A7A8A8A7A7",
">X c #AC53ACD4AC53",
",X c #AE6EBABAA767",
"<X c #B2F2B2F2B2F2",
"1X c #BB6ABB6ABB6A",
"2X c #9573C5E789DF",
"3X c #9729D92188AD",
"4X c #A626C6C69C1C",
"5X c #A5A5D90B98B2",
"6X c #9A9AE8E88A8A",
"7X c #9595FCFC8282",
"8X c #9919FCFC8646",
"9X c #9ABAF4948868",
"0X c #9D1AFCFC8A68",
"qX c #A0DFFCFC8E8C",
"wX c #A8A8E8E89A1A",
"eX c #A67BF3739616",
"rX c #A57EFCFC9388",
"tX c #A8A8FCFC9797",
"yX c #AC9EFCFC9BE7",
"uX c #B5A3D22DABB4",
"iX c #B92AEB07AC01",
"pX c #B529F5DEA660",
"aX c #B461FCFCA451",
"sX c #BBACFCFCAC19",
"dX c #BEBEF1F1B1B1",
"fX c #BFBFFCFAB0B0",
"gX c #C4A7D563BBF4",
"hX c #C5E5EACABA5A",
"jX c #C318FCFCB49F",
"kX c #C747F5F5BA3A",
"lX c #C745FCFAB939",
"zX c #CA5DFCFCBD0D",
"xX c #C4A4C4A4C4A4",
"cX c #CDC2CDC2CDC2",
"vX c #CE9BD972C5F8",
"bX c #D457D457D457",
"nX c #DC2FDC2FDC2F",
"mX c #D53FEAD5CB60",
"MX c #CECEF7F7C1C1",
"NX c #CEFDFCFCC156",
"BX c #D29FFCFBC592",
"VX c #D680F59FCA74",
"CX c #D6D1FCFCCA5B",
"ZX c #DA38FCFBCE2C",
"AX c #DADAF1F1D1D1",
"SX c #DE18FCFBD29A",
"DX c #E2E2EFEFD8D8",
"FX c #E1DAFCFCD6CF",
"GX c #E2E2F59FD8D8",
"HX c #E5A0FCFADB1A",
"JX c #EA1CFCFCDF11",
"KX c #E6E4E6E4E6E4",
"LX c #EB6BF777E1E1",
"PX c #ED1BFCF9E311",
"IX c #F138FCF6E734",
"UX c #F30FFCFCEA06",
/* pixels */
" . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . ",
" . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . ",
" . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . ",
". . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . ",
" . . . . . . . ",
" . . . . . . . . . ",
" . . . . . . . . . . . . . ",
" . . . . . . . . . . ",
" . . . . . . . . . . . ",
" . . . . . . * 3 9 e e e r e e e e e e r e e e e e e e t r e e e e e e e r & O 3 3 # 0 e e e r e e e e e e e t e e e e e e e e r e e e e e e 3 9 o . % 9 3 r e e e e e e e e e e e e r e e r e e e e e e e e e e e & - 3 . . # 0 e r e e e e e e e q r r e q e e e e r e e e e e e e t 9 9 # . # - 9 r e e e e e e e q r e e e e e e e e e e e e e r e e e e - - 3 . O 9 e e e e e r e e e e e e e e e e t e e e e r e e e e e 9 3 & . . . ",
" . . O F OX<XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX~ . ~ bXKXKXnXW % &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX;X! e . D D.>XbXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD.+ W bXKXKXnX~ # %XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX:X~ y . y / >XbXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+Xo L cXKXKXnXOX+ X OXnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX>X^ y . . . . . ",
" . . & / bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X. #XKXKXKXKXKXKX#X % xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXP O # ~ cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<X# / KXKXKXKXKXKX;X X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcXE + . + W xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX* . W KXKXKXKXKXKX<XO . :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX~ # . ",
" W nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW y KXKXKXKXKXKXKXKXt / KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXu . L bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ 0 KXKXKXKXKXKXKXKXG W KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcXD G bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@X % KXKXKXKXKXKXKXKXP K KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXK . ",
" . . . . # :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<X ^ KXKXKXKXKXKXKXKX~ 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX^ # %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX E KXKXKXKXKXKXKXKX+X :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X. . +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX G KXKXKXKXKXKXKXKX;X %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&XX . . . ",
" * 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX +XKXKXKXKXKXKXKXKXOX xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X. o <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX ~ KXKXKXKXKXKXKXKX%X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X. . . ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# P KXKXKXKXKXKXKXKX>X ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<X# . . ",
" . . . . . X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X W KXKXKXKXKXKXKXKXE :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X . . ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X G KXKXKXKXKXKXKXKX^ %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X. %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX u KXKXKXKXKXKXKXKX@X / KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X. . . . . ",
" . . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu & nXKXKXKXKXKXKXbX& G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ # cXKXKXKXKXKXKXKX9 u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXQ W KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . xXKXKXKXKXKXKXKXt 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX . . . ",
" . D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX G KXKXKXKXKXKXF @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX- r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X u nXKXKXKXKXKXL ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX0 9 nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X e bXKXKXKXKXKXW E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . . . ",
" . . # cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXxX:XJ t ;XnXnX;Xq P 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X O xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX>XP q &XnXnX:Xy G <XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<XO . <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX<XW . 7 %XnXnX>XD m >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. . ",
" . . . . Q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXOXD - X & 0 L &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr L KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX+XG - . . * 9 J %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#XG 9 & 9 G @XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . . ",
". . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X# . . 3 :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X= = &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<X >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X9 . & +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX . . ",
" . . . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ . . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX- t KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X . . ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXt 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X. . W KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXF ",
" . . . %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . O <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP / KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X. ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X# @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X . . ",
" . xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3 q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr . - nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X =XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . o nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX . . . ",
" . . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X . <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX X KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X . . &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX . +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& . . . . . ",
" . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . Q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXX 7 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ . . P KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3 . # KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#X D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXt . . . ",
" . . . . . . F KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD F KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX- y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr 3 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXQ . . . 3 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD ",
" L KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe F KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . . . 9 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP # KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY . . . . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . . r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY . . . ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . . X KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK X KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY . . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . . ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG n KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . . . . . . ",
" . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . ",
" . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
" . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . . . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . . . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE . . ",
" . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXH y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE ",
". . P KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXt F KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . 3 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG t KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . . . . ",
" . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX* . . . * KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9 m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm 9 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . . . ",
" . . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX . O KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX% y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ . . K KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXt # KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXe . . . xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . . . ",
" 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X . . %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX% >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0 . . . . . ",
" . . . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX=X . . . ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0 . % nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX ~ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX . . ",
" . . . . &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . #XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X ~ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#X . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . ",
" . . . Y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy ! KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . # nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . . ",
" . . . . X nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X . >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ O Q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX. OXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX# ",
" ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG . D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXK = * E 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X J KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ . . . 3 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX . . . ",
" . . * nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcXX e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX<X&XD.0 * Q &X=XW # q OX;X<XcXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX* . &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX- . . . ",
". . . P KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE r bXKXKXKXKXcXr E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXL . & bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . . . . . ",
" ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ . . ~ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X # xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy O xXKXKXKXKXKXKXcX# e KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX+ . / KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X . . . . F KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X . . ",
" . . . . . 3 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX<XO . >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X# 3 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X D KXKXKXKXKXKXKXKXW +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX3 X 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX* . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX- ",
" . . . e nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX* . & xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX- 0 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX Q KXKXKXKXKXKXKXKX%X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX9 * xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX0 . . :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXt . . ",
" . . . . q cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X& . . % <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X= . . * <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX ~ KXKXKXKXKXKXKXKX%X <XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X& . = 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX0 . . . O &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcXq . . ",
" . * ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ . . . . X D.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+XO W nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X m KXKXKXKXKXKXKXKXK OXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXK . +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX=X# E nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X% . . . . ",
" . . . F 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;Xq . q ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>Xt . 3 +XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX3 . 1XKXKXKXKXKXKX>X. 3 nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX~ & . r :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1Xm . . - @XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXF . . . ",
" . . t D.xXKXKXKXKXKXKXKXKXKXnX>X~ 9 . . . 3 Q <XKXKXKXKXKXKXKXKXKXKX<X^ q . % Q :XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXt = <XKXKXKXKX;X& D bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX;XE # 3 ~ <XKXKXKXKXKXKXKXKXKXKX<X/ e . . . & E >XnXKXKXKXKXKXKXKXKXKX1X+Xy . . ",
" . & y K E Q Q P G 9 . . . . # t G E Q Q E G q . . . e D P W Q Q Q Q Q Q Q Q Q Q Q Q ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q W D X y E E 0 # D W Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q ! Q Q Q Q Q Q Q L F r # t G E Q Q E G q X . . . # 0 F P Q W W J e o . . . . . ",
" . . . . . . . . ",
" . . . . . . . . . ",
" . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . . . ",
"H . . . . . . . . . . . . . . . . H ",
"UXvXK . . . . . . . . . . . . . . . . . . . . . . . . J vXUX",
"UXUXUXxXH . . . . . . . . . . . . . . . . . H xXUXUXUX",
"UXUXIXIXUX1Xn . . . . . . . . . . . . . . . . . . m 1XUXUXUXUXUX",
"UXUXUXUXUXUXUX,Xt . . . . . . . . . . . . . . . . . t ,XUXUXUXUXUXUXUX",
"UXUXUXUXUXUXUXUXUX,Xr . . . . . . . . . . . . . . . . e ,XUXUXUXUXUXUXUXUXUX",
"UXUXUXUXIXUXUXUXUXUXIX=X0 . . . . . . . . . . . . . . . . . . w -XIXIXIXUXUXUXUXIXUXIXIX",
"UXIXIXIXIXUXIXIXIXUXIXIXIX=X9 . . . . . . . . . . . . . . . . . 9 =XPXUXIXIXIXUXUXIXIXIXIXUXIX",
"IXIXIXIXIXIXIXIXIXIXIXIXIXIXPX$X3 . . . . . . . . . . . . . . . . . = $XLXIXIXIXIXIXIXIXIXIXIXIXIXIXIX",
"IXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXPX$X= . . . . . . . . . . * $XPXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIX",
"PXIXPXIXIXIXIXIXIXPXIXIXPXIXIXPXPXIXDXD.% . . . . . . . . . . . . . . . . . . . . . . . % D.DXIXPXIXIXIXIXPXIXIXIXPXIXIXIXPXIXIXIX",
"IXPXIXPXIXJXIXIXIXPXPXPXIXPXIXPXPXIXIXPXDX].o . . . . . . . . . . . . . . . . . # D.DXIXIXIXPXIXPXPXPXIXPXPXPXPXPXPXIXPXIXPXPX",
"JXPXIXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXIXAX! + . . . . . . . . . . . . . . . . . . X ~ AXLXLXPXPXPXIXIXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPX",
"PXPXPXJXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXLXPXAX! O . . . . . . . . . . . . X ! AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXvXY . . . . . . . . . . . . . . . . . . . . . . Y vXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
"PXPXJXPXPXPXJXPXPXPXJXPXPXPXJXPXPXPXJXPXPXPXPXPXPXPXPXPXvXL . . . . . . . . . . . . . R vXPXJXPXPXJXPXPXPXJXPXPXPXJXPXJXPXPXPXPXJXPXJXPXPXJXPXPXPX",
"JXJXPXPXJXJXJXPXJXJXPXPXJXJXJXPXJXJXPXJXJXPXJXJXJXPXJXPXJXPXgXH . . . . . . . . . . . J gXPXJXJXPXPXJXJXPXPXJXPXJXPXJXJXJXPXJXPXJXPXPXPXJXPXPXJXJXPXJX",
"JXJXJXJXPXJXPXJXJXJXJXJXPXJXPXJXJXPXJXJXJXPXJXPXJXJXJXJXJXJXJXPXuXD . . . . . . . . . . . . . . . . . . . F 1XJXJXJXPXJXJXJXJXJXJXJXJXJXJXJXJXJXPXJXJXJXJXJXJXJXJXJXJXJXPXJXJX",
"PXJXJXJXJXJXJXJXPXJXJXJXJXJXJXJXJXJXPXJXJXJXJXJXPXJXJXJXPXJXJXJXPXJXuXn . . . . . . . . . . . . . . m uXJXJXJXJXJXJXJXJXPXJXJXJXPXJXPXJXJXJXJXJXPXJXPXJXJXJXJXJXJXJXJXJXJXPX",
"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX,Xr . . . . . . . . . . . . . . . . . . r ,XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX",
"HXJXJXJXJXJXJXJXJXJXHXPXJXJXHXJXJXJXHXJXJXHXJXJXJXHXJXJXJXJXJXJXPXHXJXJXJXHX,Xq . . . . . . . . . . . . . . e ,XHXJXJXJXJXJXJXHXJXJXJXJXJXHXHXJXHXPXJXJXJXJXJXJXHXJXJXJXHXJXJXHXJXJXJXJXHXJX",
"HXJXHXHXHXHXHXJXHXHXJXHXHXHXJXJXHXJXJXHXJXHXHXJXHXJXHXJXHXHXHXHXHXJXHXJXHXJXJXHX=X7 . . . . . . . . . . . . . . . . . . 7 -XHXHXHXHXJXHXHXHXHXJXHXHXHXJXHXJXJXJXHXHXHXHXHXHXHXJXJXHXJXHXJXHXHXJXHXJXHXJXJXHX",
"JXHXHXJXJXHXHXHXJXHXPXHXHXJXJXHXHXJXHXJXJXJXJXHXJXJXHXHXJXJXJXHXJXHXHXPXJXJXHXHXHXHX-X3 . . . . . . . . . . . . . . 3 -XGXHXHXPXHXJXHXJXJXJXJXHXHXJXHXJXHXHXHXJXPXHXHXJXHXHXHXJXHXJXHXJXHXHXJXJXHXHXJXHXHXJX",
"JXHXHXJXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXSX#X3 . . . . . . . . . . . . 2 $XSXJXHXHXJXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXJXHXJXHXHX",
"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFX#X* . . . . . . . . . . . . . . . * #XFXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHX",
"HXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXHXHXFXHXHXHXHXHXHXHXHXHXHXAXF.# . . . . . . . . . . . . . . . # D.AXHXHXFXGXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX",
"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXAXD.# . . . . . . . . . . . . . . . . . # D.AXHXFXFXHXHXFXHXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXFX",
"HXHXHXHXHXHXHXFXHXHXFXHXHXFXHXFXHXHXHXFXHXFXFXHXFXHXHXFXFXHXFXHXHXFXHXFXHXFXFXHXHXHXGXHXFXHXFXFXSXHXFXmX! + . . . . . . . . . . . . # ! mXFXFXHXFXHXHXFXHXHXHXHXFXHXFXHXFXFXHXHXHXHXHXHXHXHXHXFXHXHXFXHXHXFXHXHXFXHXFXHXHXFXHXHXHXFXHXHXFXHXFXHX",
"HXFXHXFXHXHXFXHXFXFXFXFXHXFXHXHXFXHXHXHXHXFXFXHXHXFXHXFXHXFXHXFXHXFXHXHXFXHXFXHXHXHXHXFXFXHXHXFXHXHXHXHXHXmX! . . . . . . . . . . . . . X ! mXSXHXHXFXHXHXHXFXHXHXFXHXHXFXFXHXFXFXHXFXFXFXHXFXHXHXHXFXHXFXHXFXHXHXFXHXFXFXHXHXHXHXFXFXFXFXHXHXFXHXHXFXHX",
"FXFXFXHXFXFXFXFXFXFXFXHXHXFXFXFXFXFXFXFXFXHXFXFXFXFXFXHXFXFXHXFXFXFXFXFXFXFXHXFXFXFXFXHXFXFXFXFXFXFXSXHXSXHXGXhXY . . . . . . . . . . . . . . . . . Y gXHXFXHXFXHXFXFXFXFXFXFXFXFXFXFXFXHXFXFXHXFXFXHXFXFXHXFXFXFXFXFXHXFXFXFXFXFXFXHXFXFXFXFXFXHXFXFXFXFXFXHXFXFXFXFX",
"FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXHXSXHXSXFXgXP o . . . . . . . . . . . . . . . . . . . X Y gXFXSXHXSXHXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX",
"FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXSXHXSXHXFXFXHXuXJ . . . . . . . . . . . H uXHXSXHXHXSXHXSXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX",
"FXFXSXFXFXFXFXFXFXFXSXFXFXFXSXFXFXFXFXFXFXFXFXFXSXFXFXFXFXFXSXFXFXSXFXFXFXFXSXFXSXFXFXFXFXFXFXFXFXFXFXSXFXHXSXFXFXFXFXFXSXuXD o . . . . . . . . . . . . . . I uXHXSXHXFXSXSXFXHXSXFXFXFXSXFXFXFXFXSXFXFXFXFXFXFXSXFXFXFXSXSXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXSXFXFXFXFXFXFXFXFXFXSX",
"SXSXFXFXFXSXFXSXFXSXFXSXSXSXFXFXFXSXSXSXSXFXSXSXFXFXSXFXSXFXSXFXFXFXSXFXSXSXFXFXFXSXFXSXSXFXSXFXSXFXSXHXSXSXFXSXSXFXSXFXSXFXSX,Xn . . . . . . . . . . . . n ,XFXSXHXSXSXSXHXSXSXSXSXSXSXFXFXSXSXFXSXFXSXSXFXSXFXFXFXFXSXFXSXFXFXSXFXFXSXSXSXFXSXSXSXSXSXSXFXFXSXFXSXFXFXSXFXSXFXSXSXSXFXSXFX",
"SXSXFXSXSXFXSXSXSXFXSXSXSXFXFXSXFXSXSXFXSXSXSXFXSXSXSXSXSXFXSXSXSXSXSXFXSXFXFXSXSXSXSXSXSXSXFXSXSXSXSXSXSXHXSXSXFXSXSXSXSXSXSXSXSX-Xr . . . . . . . . . . . . . . . . e -XFXSXFXSXSXSXSXFXSXSXSXSXSXSXSXFXSXSXSXFXFXSXSXSXSXSXSXFXSXSXFXSXFXSXSXSXSXSXSXSXSXSXFXSXSXFXSXFXSXFXSXSXSXSXSXSXSXSXSXSXFXFXSXSXFX",
"FXSXSXSXSXSXSXSXSXFXSXFXSXSXSXSXSXSXSXSXFXSXSXSXSXSXFXSXSXSXSXFXSXFXSXSXSXSXSXSXFXFXSXSXFXSXSXSXSXFXSXSXSXSXSXSXSXSXFXSXFXSXSXSXSXFXSX4Xw . . . . . . . . . . r 4XSXSXSXSXSXSXSXSXSXSXSXFXSXSXHXFXSXSXSXFXSXSXSXSXFXSXFXFXSXSXSXSXSXSXSXSXSXSXSXFXSXSXFXSXSXFXFXSXSXSXSXSXSXFXSXFXSXSXFXSXSXSXSXSXSXSXSX",
"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX*X7 . . . . . . . . . . . . 9 *XAXFXZXZXFXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX",
"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXZXSXSXSXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXZXZXSXSXSXSXSXSXSXSXSXZX*X7 . . . . . . . . . . . . . . . 7 *XZXSXSXZXFXSXFXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXSXZXSXSXSXSXSXZXSXSXSXSXZXSXSXSXSXSXSXSXSX",
"ZXSXZXSXZXSXSXSXZXSXZXSXZXSXZXSXZXSXZXSXSXSXSXSXSXSXSXZXZXSXSXZXSXZXZXSXZXSXSXSXZXSXSXSXZXSXSXZXSXZXZXSXZXSXSXSXSXZXSXSXSXSXSXSXSXZXSXSXSXZXSXSXVX].* . . . . . . . . . . . * ].ZXZXFXSXZXSXZXZXZXSXZXSXZXZXSXSXZXZXSXSXSXZXSXSXSXZXSXSXZXSXSXSXSXSXSXSXSXZXSXZXSXSXSXSXSXSXCXSXSXZXSXSXZXSXSXZXSXZXSXSXZXSXSXZXSXSXSXZXZXSXSXZXSX",
"SXSXZXSXSXZXSXSXSXZXSXZXSXZXSXZXSXSXSXSXSXZXZXSXZXZXSXSXSXSXZXSXZXSXSXZXSXSXZXSXSXZXZXSXSXSXZXSXZXSXSXSXSXZXSXZXSXSXSXZXZXSXZXZXSXSXSXZXSXSXZXZXSXSXVX].= . . . . . . . . . . . . . = ].CXSXSXZXFXZXSXZXFXSXSXZXSXZXSXSXZXSXZXSXZXZXSXSXZXZXSXSXZXSXZXSXZXZXSXSXZXZXSXSXZXSXSXSXZXSXZXSXSXSXZXSXZXSXSXZXSXSXZXSXZXSXSXZXSXSXSXZXSXSXSXZXZXSXZX",
"ZXSXSXSXCXSXSXCXSXZXSXZXZXSXZXSXZXZXSXZXZXSXZXZXZXSXZXZXSXZXZXSXSXZXZXSXZXSXZXZXZXZXZXZXZXSXZXZXZXZXSXZXZXSXZXZXZXZXSXZXZXSXZXSXZXZXSXZXZXSXZXSXZXSXZXZXVXA.& . . . . . . . . . . . . # A.VXZXSXZXSXZXZXZXSXSXZXZXZXSXZXSXZXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXZXSXZXSXZXSXSXSXCXSXSXSXZXZXSXZXSXZXSXZXSXZXZXSXZXSXZXZXSXSXZXZXZXZXSX",
"SXCXCXSXSXCXSXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXmXA.o . . . . . . . . . o S.mXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXSXCXCXCXSXSXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZX",
"CXCXSXZXCXZXCXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXhX! + . . . . . . . . . . # ! hXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZXZXZXZXZXZXZXZXCXSXZXCXCXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZX",
"CXSXCXZXSXCXSXCXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXhX! + . . . . . . . . . . . . . . . . . O R hXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXSXCXZXSXCXSXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZX",
"CXZXCXZXCXZXZXZXCXZXZXCXZXZXZXCXZXZXCXZXCXZXZXZXCXZXCXZXCXZXCXZXZXCXZXZXZXZXZXCXZXZXZXCXZXCXZXZXCXZXZXZXCXZXZXZXZXZXCXZXZXZXZXZXZXZXZXCXCXZXCXZXZXZXCXZXZXZXCXZXZXCXZXZXhXI . . . . . . . . . . . . . o o U gXZXZXZXZXZXZXZXCXZXCXZXZXZXZXZXCXZXCXZXZXCXZXZXZXCXZXCXZXZXCXZXZXZXCXZXZXZXCXZXCXZXZXZXCXZXZXZXZXCXZXZXCXZXSXCXCXZXCXZXZXZXZXZXCXZXCXZXZXCXZXCXZXCXZXCXCXCXZXZXZXCXZXCXZX",
"ZXCXZXZXZXCXCXCXCXCXCXZXCXCXZXCXCXCXCXZXCXCXCXZXZXZXCXZXZXCXZXZXCXZXCXCXCXCXCXCXCXCXCXZXCXZXCXCXCXCXCXCXZXCXCXZXCXCXCXZXCXCXCXCXCXCXCXZXCXZXCXZXCXCXZXCXCXCXCXCXZXCXCXCXZXZXgXI . . . . . . . . . . . . . . . L gXCXZXCXCXCXCXCXCXZXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXZXCXZXCXCXCXZXCXCXZXCXCXCXCXZXZXCXCXCXZXCXCXCXCXCXCXCXZXCXCXCXCXCXCXZXCXCXCXCXCXCXCXZXCXCXZXZXCXZXZXZXCXCXZXCXCXZXZXCXCXCX",
"CXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXuXH . . . . . . . . . H uXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX",
"CXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXuXH . . . . . . . H uXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXZXCXCXZXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX",
"CXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX4Xy . . . . . . . . . . . . . . n 4XCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCX",
"CXBXBXCXCXCXCXBXCXBXCXCXCXCXBXCXCXCXBXCXBXCXCXCXCXBXBXCXBXCXCXBXCXCXCXBXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXCXCXBXBXCXCXBXCXCXBXCXCXCXCXCXBXCXCXBXCXBXCXCXCXCXBXCXBXCX-Xw . . . . . . . . . . . r 4XCXCXBXCXBXCXCXBXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXBXBXCXCXCXCXCXBXCXCXCXBXCXCXCXBXCXCXCXCXCXCXBXBXCXBXCXCXCXBXCXCXCXCXCXCXCX",
"CXBXCXBXCXBXBXCXBXCXCXBXCXBXCXBXBXCXBXCXCXBXCXBXCXBXCXBXBXCXBXCXCXCXBXCXCXBXBXCXBXCXCXBXCXBXCXBXCXBXBXCXBXBXCXBXCXBXCXBXCXBXBXCXBXCXBXCXBXCXBXCXBXBXCXCXCXCXBXCXBXCXBXCXBXCXBXCXBXCXCXBXBXCXBXCX2Xq . . . . . . . . . . . . . . w 2XCXCXCXBXCXBXCXCXCXCXBXCXCXBXBXCXBXCXCXCXBXCXBXCXBXCXCXCXBXBXCXCXBXCXBXCXBXCXBXBXCXBXBXCXBXCXCXBXBXBXCXBXBXCXBXCXCXBXBXCXCXBXBXCXBXCXBXCXBXBXCXCXBXCXCXCXBXCXBXBXBXCXCXBXCXCXCXBXBXCXBXCXBXCXBXBX",
"BXCXBXBXBXCXBXBXBXBXBXBXBXCXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXBXBXBXBXBXBXCXBXBXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXCXBXBXCXBXBXBXCXBXBXBXCXBXBXBXBXBXBXBXCXBXBXBXBXBXCXBXBXCXBXBXCXBXBXBXCXMX*X8 . . . . . . . . . . . 7 *XBXCXBXBXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXBXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXCXBXBXBXCXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXCXBX",
"BXBXBXBXBXBXBXBXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXCXBXBXBXCXBXCXBXBXBXBXBXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXCXBXBXCXBXBXBXBXCXBXCXBXBX*X3 . . . . . . . . . . . . . . . 3 *XMXBXBXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXCXBXBXCXBXBXBXBXCXBXCXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXCXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXCXBXCXBXBXBXBXBXCXBXCXBXBXBXBXCXBXBXCXBXBXCXBXBXBXCXBXBXBXBXBXCXBXBX",
"BXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXkXF.= . . . . . . . . . * ].zXBXMXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX",
"BXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXNXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXMXF.* . . . . . . . % F.zXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXNXBXBXBXBXBXBXNXBXBXBXBXNXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX",
"BXBXBXBXNXBXBXBXNXBXNXBXBXBXBXNXBXNXBXNXNXBXNXBXNXBXNXBXBXBXBXNXBXBXBXNXNXNXBXNXBXNXBXNXBXNXNXBXNXBXNXBXBXBXBXNXBXzXBXNXNXBXzXBXBXNXNXBXNXBXNXBXBXNXNXBXBXBXBXNXBXBXNXBXNXBXNXBXNXBXNXBXBXBXBXNXMXBXMXNXNXMXBXBXBXMXA.# . . . . . . . . . . . & A.kXBXBXzXBXBXNXNXBXNXBXzXBXBXBXBXBXBXzXBXBXBXNXBXNXBXBXNXNXBXNXBXBXBXNXBXBXNXBXNXNXBXBXBXNXBXBXBXBXzXNXBXzXBXBXBXBXNXBXBXzXBXBXBXBXNXNXBXBXzXNXBXNXBXBXNXNXBXNXBXBXNXNXNXBXNXBXNXNXBXNXBXNXNXBXNXNXBXBXNXNXBXNXBXNXBX",
"NXBXNXBXBXBXBXNXBXNXBXBXBXBXBXBXBXNXBXNXBXBXBXNXBXNXBXNXBXBXBXBXBXBXNXBXBXBXNXBXBXBXNXBXBXNXNXBXNXBXBXBXNXBXNXBXNXBXBXBXBXzXzXBXBXNXBXNXBXBXBXNXNXBXNXBXNXBXBXBXNXBXBXNXNXBXBXNXBXNXBXBXBXBXBXBXBXBXzXBXBXBXNXBXNXBXBXhXA.# . . . . . . . . . . . . + A.kXBXBXBXNXBXNXBXBXBXBXzXzXBXBXBXBXBXBXBXBXBXzXBXBXBXBXNXNXBXNXBXNXBXNXNXBXBXBXNXBXBXNXBXNXBXBXBXNXBXBXBXNXBXBXBXzXBXzXBXBXNXBXBXzXBXBXBXBXBXNXBXBXNXBXNXNXBXBXNXBXNXBXBXBXBXNXBXNXBXNXNXBXNXBXBXNXBXBXNXBXBXNXBXNXBXNXBX",
"NXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXBXNXNXNXNXBXNXNXBXNXzXBXBXBXBXBXNXBXNXBXzXBXBXNXBXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXzXNXBXBXNXNXNXNXNXBXNXNXBXhXR o . . . . # n.hXNXNXMXzXBXNXBXNXNXzXBXBXBXBXBXBXzXzXBXzXBXzXBXBXBXBXzXNXBXBXNXNXNXBXNXNXBXNXNXNXBXNXNXNXNXNXNXBXzXBXzXNXBXBXNXNXNXBXBXzXBXNXBXzXBXBXBXzXBXBXzXBXNXBXNXNXBXNXNXBXNXNXBXNXNXNXNXNXNXBXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNX",
"NXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXzXBXzXBXzXBXNXNXNXNXNXNXzXBXNXNXNXBXNXNXNXNXBXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXBXzXBXNXBXNXNXNXNXNXNXNXNXNXNXiXR . . . . . . . . . R iXMXBXNXBXBXzXBXNXNXNXNXNXBXzXBXBXzXzXBXBXzXBXzXBXBXBXBXzXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXBXNXNXBXNXNXNXNXNXNXNXBXNXNXNXzXBXzXBXBXzXzXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXBXNXNXNXNXNXBXNXNXNXBXNXNXNXNX",
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXBXzXBXzXBXzXNXNXNXNXNXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXBXzXBXzXNXNXNXNXNXNXNXNXNXNXNXzXiXU . . . . . . . . . . . . . . . . . I iXNXBXMXzXBXzXNXBXzXNXNXNXNXNXNXNXzXBXzXBXBXzXBXBXzXzXzXzXzXBXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXNXzXBXzXNXNXNXNXNXNXBXzXNXBXzXBXzXBXzXBXzXBXzXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX",
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXzXBXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXBXzXBXzXzXBXzXBXzXBXzXBXNXNXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXBXNXNXNXNXNXzXBXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXMXNXNXuXU . . . . . . . . . . I uXNXNXNXzXNXNXNXzXNXNXNXNXNXBXNXNXNXNXNXBXzXBXzXBXzXzXBXzXBXzXBXBXBXBXBXNXNXBXNXNXNXNXNXNXNXNXNXzXBXNXNXNXNXNXNXNXzXNXNXNXNXNXNXNXBXNXNXBXzXBXzXBXzXzXBXNXzXNXBXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXzXNXNXNXNXNXNXNXNXNXNXNXNX",
"NXNXNXNXNXNXNXzXNXNXNXzXNXNXNXNXNXNXNXNXzXNXzXNXNXzXNXzXNXNXzXNXNXzXNXNXNXzXNXNXzXNXzXNXNXNXNXNXzXNXNXNXzXBXzXBXBXzXBXzXBXzXBXzXNXzXNXNXNXNXNXNXzXNXNXNXNXNXzXNXNXNXNXzXzXNXzXNXNXzXNXzXNXNXNXNXzXNXBXzXNXNXzXNXNXNXNXNXNXNXNXzXMXMXNXzXNX4XH . . . . . . . . . H uXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXzXNXzXNXBXzXzXBXzXBXzXBXBXzXBXzXBXzXzXzXzXzXNXNXzXNXzXNXzXNXzXNXNXNXNXzXNXNXzXNXNXNXNXNXNXNXNXzXzXBXNXzXNXzXzXBXzXBXzXBXBXzXNXBXzXzXNXBXzXNXNXNXNXNXzXNXzXNXzXNXNXNXNXzXNXNXNXNXzXBXNXzXNXNXNXNXNXNXNXNXNXlX",
"NXNXlXNXNXzXzXNXNXzXzXNXNXzXNXNXNXNXNXzXNXNXNXzXBXzXzXNXzXNXNXNXzXNXzXNXNXNXNXNXzXNXNXzXNXNXzXNXzXNXzXzXzXzXzXBXzXzXzXzXzXBXBXzXNXNXzXNXNXNXzXNXzXNXzXNXNXzXNXlXNXzXzXNXNXNXNXzXzXBXzXNXNXzXNXNXzXBXzXzXzXNXNXNXNXNXzXNXNXzXzXNXNXzXzXNXzXNXNX5XA . . . . . . . I 4XNXzXNXNXNXNXNXNXzXNXzXNXzXNXzXNXNXzXNXzXBXzXzXzXzXzXzXzXBXzXBXzXzXzXBXzXzXBXzXzXNXNXNXzXNXNXzXNXNXzXzXNXNXNXNXNXzXNXzXNXzXNXNXzXzXNXNXzXBXzXNXBXzXzXBXzXBXzXBXzXNXBXzXzXNXBXzXzXzXNXNXzXNXNXzXNXNXzXNXNXNXzXzXzXzXNXzXzXNXzXNXNXNXNXNXlXNXNXNX",
"zXlXNXzXzXNXzXzXzXNXzXzXNXzXzXzXzXzXNXzXzXzXzXzXzXNXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXNXzXzXzXNXzXzXzXNXzXzXBXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXNXzXNXzXNXzXzXNXlXNXNXzXNXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXNXzXzXzXzXzXNXzXzXNXzXzXzXNXzXzXNXzXNXNXzX4Xn . . . . . . . . . . n 2XzXzXzXNXzXNXlXNXfXlXNXNXzXzXNXNXzXzXzXNXzXzXzXNXzXBXzXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXNXzXzXNXzXzXzXzXzXzXNXzXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXzXzXzXNXzXzXzXNXzXzXzXzXNXzXNXzXNXzXzXNXzXNXlXNXlXNXNXNXlX",
"zXzXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXNXzXzXzXNXzXzXzXzXzXzXzXNXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXNXzXNXNXlXNXlXNXzXNXzXzXzXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXNXzXNXzXzXNXlXNXNXzXNXNXzXzXNXzXNXNXzXNXzXzX2Xn . . . . . . r 4XzXzXMXzXzXzXNXzXNXzXNXNXNXlXNXzXNXzXNXzXMXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXNXzXzXBXzXzXzXNXzXzXzXzXzXBXzXzXzXzXzXzXzXNXzXzXlXNXlXNX",
"zXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXNXNXlXNXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXNXlXNXfXNXlXzXzXzXzXzXzXzXzXzXzXzXzXNX*Xw . . . . . . . . 0 2XzXlXzXzXzXzXzXzXzXzXzXzXzXlXNXNXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXlXNXlX",
"zXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXlXNXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXNXNXNXfXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlX[.7 . . . . . . . . . 0 *XlXzXzXzXzXzXzXzXzXzXzXzXzXNXlXlXNXfXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzX",
"zXzXlXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXlXlXlXNXfXNXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXlXzXfXNXNXlXzXzXlXzXzXlXzXlXzXzXlXzXzXzXzXlXlX[.7 . . . . . . . . . . . . . . . 3 [.lXzXlXzXlXzXzXlXzXlXzXzXlXzXlXzXlXlXNXfXNXzXlXzXlXzXzXlXzXlXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXzXzXzXzXlXzXzXlX",
"lXlXlXlXlXNXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXlXNXlXlXlXlXlXNXlXlXzXzXlXNXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXzXlXzXlXzXlXzXlXlXzXlXzXlXzXlXzXlXlXzXlXzXlXzXlXlXzXlXzXlXzXlXlXzXlXjXF.= . . . . . . . : F.jXlXzXlXlXlXzXlXlXzXlXlXzXlXlXzXlXlXlXzXlXlXzXzXlXlXzXlXlXlXzXlXlXzXlXlXlXNXlXlXNXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXlXlXlXlXNXlXlXlXNXNXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlX",
"lXlXNXlXlXlXlXNXlXlXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXNXlXlXlXzXlXlXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXlXlXlXNXlXlXlXzXlXzXlXzXlXlXlXlXzXlXzXlXzXlXzXzXlXzXlXzXlXlXlXlXzXlXzXlXzXlXlXzXlXlXjXF.% . . . . . . . . . . * F.kXlXlXzXlXlXzXlXzXzXlXlXzXlXzXzXlXzXlXzXlXlXzXzXlXlXzXzXlXlXzXzXlXlXzXzXlXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXNXlXlXlXlXlXlXlXlXlXlXNXNXlXlXlXNXlXlXNXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXNXlXNXNXlXlXlXlXlXlXlXNXlXlXNXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlXNXNXlXNXlXNXlXlXNXlXlX",
"lXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXdXA.# . . . . . # A.dXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXlXzXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlX",
"lXlXlXlXlXlXlXlXjXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXdXA.# . . . . . . . . . # A.dXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXfXzXlXlXlXlXlXlXlXlXzXzXfXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlX",
"lXlXlXjXlXlXjXjXlXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXlXjXlXlXjXjXjXjXlXlXjXlXlXlXlXlXjXlXjXlXlXlXlXlXlXjXlXlXjXlXlXlXlXlXlXlXjXjXlXlXjXlXjXlXlXlXlXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXlXlXjXlXlXjXlXlXlXlXlXjXlXjXlXlXjXjXlXlXlXlXjXjXlXlXlXjXjXlXlXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXjXjXjXlXiXT . . . . . . + T iXjXlXlXjXlXlXjXlXlXlXjXlXlXlXlXlXlXjXzXlXfXfXfXlXlXlXjXlXlXfXlXlXfXzXfXlXlXzXlXlXjXlXlXjXlXlXlXlXfXlXlXlXlXlXjXlXlXjXlXlXlXjXlXjXlXjXjXlXlXlXlXjXjXlXlXlXlXjXlXlXlXlXlXlXlXjXlXjXlXlXlXjXlXlXlXlXlXjXlXjXjXlXlXjXlXjXjXlXlXlXlXlXlXjXlXlXjXjXlXjXjXlXlXlXjXlXlXjXlXjXlXlXlXjXlXjXlXlX",
"lXjXlXlXjXlXlXlXlXjXlXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXjXlXjXlXlXjXlXlXjXlXlXjXjXlXjXlXlXjXlXlXjXlXlXjXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXjXlXlXlXjXlXjXlXjXjXlXjXlXlXjXlXjXlXjXlXlXlXjXlXjXlXlXlXjXjXlXlXlXlXjXjXlXlXlXjXlXlXlXlXjXlXlXjXlXlXjXjXlXjXlXlXlXlXjXjXlXiXT . . . . . . . . . . . + R iXjXlXlXlXjXlXjXlXjXlXjXlXlXlXjXlXlXjXlXlXfXzXzXlXzXzXfXlXjXlXlXlXlXlXlXlXzXzXfXfXjXlXjXlXjXlXlXjXjXlXlXlXlXlXjXlXjXlXlXlXjXjXlXlXlXlXlXlXlXlXjXlXlXlXlXlXjXlXlXlXlXjXjXlXjXjXlXlXlXlXlXjXlXlXlXjXjXjXlXlXlXlXlXlXlXlXlXlXlXlXjXjXlXjXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXjXjXlXlXlXlXlXjX",
"jXlXjXlXjXlXjXlXlXjXjXjXlXlXjXjXlXjXjXjXlXjXlXjXlXjXjXjXjXlXjXlXjXlXjXlXlXjXlXlXjXlXjXlXlXjXjXlXjXlXlXjXjXlXjXlXjXlXlXjXjXlXjXlXlXjXlXjXlXjXlXlXjXlXjXjXjXlXjXjXjXlXjXlXjXlXjXlXlXjXlXjXlXlXjXlXjXlXjXjXlXlXjXlXjXlXjXlXjXlXlXjXjXlXlXjXlXjXjXlXjXlXjXlXlXjXjXlXjXlXlXjXjXlXjXlXjXlXlXjXlXjXwXI . . . . . . O I uXjXlXlXjXjXjXlXjXlXlXlXjXlXlXjXlXlXjXlXjXjXjXzXfXlXlXfXlXfXlXlXlXfXlXfXlXlXzXfXlXlXlXlXlXlXjXjXlXjXlXlXjXlXlXjXlXjXlXjXjXlXjXjXlXjXlXjXlXjXjXlXjXjXlXjXjXlXjXlXjXlXjXjXlXjXlXjXlXjXlXjXlXjXlXlXjXlXjXlXjXjXlXjXlXjXjXjXlXjXjXjXlXlXlXlXjXjXjXlXjXlXjXjXjXlXjXjXjXlXjXjXjXlXlXlXjXjXlXjXlXjXlX",
"jXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXjXlXzXjXwXI . . . . . . . . . . . . I wXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXfXjXjXjXlXjXjXfXlXfXfXzXfXlXlXfXlXlXfXlXfXfXfXzXfXfXlXfXjXlXfXjXlXjXjXjXjXfXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXlXjXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXlXjXjXjXjXjX",
"jXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjX5XM . . . . . A 5XjXjXjXjXjXfXjXjXjXjXjXfXjXjXjXjXjXjXfXfXfXlXjXjXjXjXjXfXlXfXfXlXfXfXfXzXzXfXfXzXlXfXfXfXfXfXzXfXzXfXlXfXfXlXfXlXjXjXlXfXfXlXlXfXlXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX",
"jXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX4XM . . . . . . . . . . . M 5XjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXlXlXfXjXjXjXjXfXlXlXfXjXjXlXfXfXfXfXfXfXfXfXlXfXlXlXfXfXfXzXfXfXlXlXfXlXfXjXjXfXlXfXlXfXlXfXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX",
"jXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXfXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXfXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXfXjXjXjXjXjXjXjX2Xv . . . . . . n 2XjXjXjXjXfXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXfXlXfXfXjXjXjXjXfXlXfXlXjXjXjXfXfXzXfXlXzXfXfXfXfXfXlXlXfXfXfXfXlXfXlXfXjXjXjXjXlXjXfXfXfXlXfXlXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXfXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjX",
"jXfXfXjXfXjXfXfXfXjXfXjXfXjXfXjXfXjXfXjXjXfXjXfXfXjXfXjXfXjXjXfXjXjXjXfXfXfXjXfXjXsXjXjXfXjXsXjXjXjXfXjXfXjXfXfXjXfXfXjXfXfXfXjXfXjXjXfXfXfXjXfXjXfXjXjXjXfXfXjXjXfXjXfXfXjXjXfXfXjXfXjXfXfXjXfXjXjXfXjXjXfXjXfXjXfXjXjXjXfXfXjXjXjXfXjXfXjXfXjXjXfXfXjXfXfXjXfXjXjXfXjXfXjXfXjXjXfXfXjXfXjXjXfXjXjXfXjXjXjXjXjX2Xv . . . . . v 2XjXjXjXjXfXjXfXjXjXfXjXjXfXjXfXjXjXfXjXfXjXfXjXjXfXfXfXlXfXjXfXjXfXfXfXfXjXjXfXlXfXfXlXfXfXfXlXfXlXfXfXfXfXzXfXfXfXfXfXfXjXfXfXjXfXjXlXfXfXfXlXfXjXjXfXjXfXjXfXjXfXfXjXfXjXfXfXjXjXfXfXjXfXjXfXjXjXfXfXjXfXjXfXfXfXjXfXjXjXfXjXfXfXfXfXjXfXjXjXfXjXjXjXsXfXjXfXfXfXfXjXfXjXfXjXjXfXjXjXfXjXfXjXjXjXfXfXjXfXfXjXfX",
"fXfXfXfXfXjXfXfXfXjXfXjXjXfXfXfXfXfXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXjXjXfXfXjXjXfXfXfXfXfXfXjXfXfXjXfXjXfXfXfXfXjXfXjXjXfXjXfXfXfXfXjXjXfXfXfXfXjXjXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXjXfXfXfXfXfXfXfXfXjXjXfXfXfXjXfXfXfXfXfXfXfXfXfXfXjXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfX*Xw . . . . . . . 0 *XsXfXfXjXjXfXfXfXfXjXfXfXjXjXjXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXfXfXjXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXjXfXfXfXjXfXfXfXjXjXfXfXfXfXjXfXjXfXjXsXjXfXfXjXfXfXjXfXjXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfX",
"fXjXfXfXfXfXjXfXfXfXfXfXfXfXjXfXjXjXfXfXfXfXjXfXfXfXfXfXjXfXjXfXjXfXjXfXjXfXfXfXfXjXjXsXfXfXjXjXfXjXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXfXjXfXfXjXfXjXfXfXfXjXfXsXfXfXfXjXfXfXfXfXjXfXfXfXfXjXfXjXfXfXfXfXfXfXjXfXfXfXjXfXjXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXjXfXjXjXfXfXfXjXfXfXfXjXfXjXfXfXsXfX[.7 . . . . . . 8 [.fXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXjXfXfXjXfXjXfXfXjXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXlXfXfXfXfXlXfXfXfXlXfXfXfXfXfXjXfXjXfXjXfXfXjXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXjXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXjXfXjXjXfXfXfXjXfXfXfXjXjXfXfXfXfXjXfXjXfXfXjXfXjXfXjXfXfXjXfXjX",
"fXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXjXfXfXfXfXfXfXfXjXfXfXjXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXdX[.2 . . . . . . . . . . . 3 G.fXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXjXfXsXfXfXfXfXfXjXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfX",
"fXfXfXfXfXsXfXfXfXsXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXfXsXfXfXfXsXfXsXfXfXfXfXsXsXfXfXsXfXfXfXsXfXsXjXfXfXfXsXfXfXfXfXsXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXsXfXfXfXfXfXsXfXfXfXfXfXfXfXfXfXsXfXfXfXfXfXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXsXfXsXS.: . . . . . : S.sXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXsXsXjXsXjXsXfXsXfXsXfXsXfXfXsXsXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfX",
"fXfXsXfXsXfXfXfXsXfXsXfXsXsXfXsXfXfXsXfXfXsXfXsXfXfXfXsXfXsXfXfXsXsXfXsXfXsXfXfXfXsXfXsXfXfXfXsXfXsXfXfXsXfXfXsXfXjXsXsXsXfXsXsXsXsXfXsXsXfXsXsXfXsXfXfXsXsXfXsXfXsXfXfXfXsXfXsXfXfXsXfXfXsXfXfXfXfXsXfXfXsXfXfXfXsXfXsXfXfXsXfXsXfXfXfXsXfXfXsXfXfXsXfXfXsXfXfXfXfXsXfXfXsXfXfXsXfXfXsXfXsXfXsXfXfXsXsXfXfXsXfXsXfXsXfXsXfXsXfXfXsXS.% . . . . . . . X % S.sXsXfXfXfXsXfXfXfXsXfXsXfXfXsXfXsXfXfXsXfXsXfXsXfXsXfXfXsXsXfXsXfXsXfXsXsXfXsXfXfXfXsXfXfXfXfXsXsXfXfXfXsXfXfXsXfXfXsXfXfXsXfXfXfXsXfXfXsXsXfXfXsXfXsXfXsXfXfXfXsXsXsXfXfXfXsXfXfXfXfXfXfXfXsXfXsXfXfXfXfXfXsXfXfXsXfXsXfXjXsXsXfXsXfXfXsXfXsXfXsXfXsXfXsXsXfXsXfXfXsXfXsXfXfXsXfXsXfXsXsXfXfXsXsXsXfXfXfXsXfXfXsXfXsXfXfXsXfXfXsXfX",
"sXsXsXsXsXsXsXsXsXsXfXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXsXfXsXsXsXsXsXfXsXfXfXsXsXsXfXsXsXfXsXsXsXfXfXsXsXsXsXsXsXfXsXsXsXsXfXsXsXfXsXfXsXfXfXsXsXfXfXsXsXfXsXfXsXfXsXsXsXsXfXsXsXfXsXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXsXfXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXfXsXfXsXsXsXfXsXsXfXsXfXsXsXsXfXsXfXsXfXsXsXpXm.+ . . . . . # n.pXfXsXsXsXsXsXfXsXsXfXsXsXfXsXsXsXsXfXsXfXsXsXfXsXfXsXfXsXsXsXfXsXfXsXfXsXfXsXfXfXsXsXsXfXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXfXsXsXsXsXfXsXsXfXsXfXsXsXsXsXsXsXfXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXfXsXfXsXsXsXfXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXsXfXsXsXsXfXsXsXsXsXfXsXsXsXfXsXsXsXfXsXsXsXfXsX",
"fXsXfXsXsXsXsXsXfXsXfXsXsXfXsXsXsXsXsXsXsXsXfXsXsXsXsXfXsXsXsXsXfXsXsXfXsXsXsXsXsXsXfXsXfXsXsXfXsXsXsXsXfXsXsXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXfXsXsXfXsXsXsXsXsXfXsXsXsXsXsXsXfXsXsXsXsXfXfXsXsXfXsXsXsXfXsXsXsXsXsXsXsXfXsXfXfXsXsXsXsXsXfXsXfXsXsXsXsXfXsXsXsXsXfXsXsXfXsXfXfXsXsXfXsXsXfXsXsXfXsXsXsXsXsXfXsXfXsXfXsXsXsXsXsXsXsXsXfXsXsXiXm.& . . . . . & A.pXfXfXsXsXsXsXsXfXsXsXsXsXsXfXsXsXsXsXfXsXsXsXfXsXsXfXsXsXfXsXfXsXsXsXfXsXsXsXfXsXsXsXsXsXsXsXsXfXsXsXfXsXsXfXsXsXsXsXfXfXsXsXfXsXsXfXsXsXsXsXsXsXsXsXfXsXfXsXfXfXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXfXsXsXfXsXsXsXsXsXjXsXsXsXsXfXsXfXsXfXfXsXfXsXsXsXsXsXfXsXsXfXfXsXsXsXsXsXsXfXfXsXsXsXsXsXsXfXsXsXsXfXsXsXfXsXfXsXsXfXsXsX",
"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXwXT . . . . . . . X T wXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX",
"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXwXT + . . . . . . X T wXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX",
"sXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXaXsXsXsXsXaXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXsXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXaXsXsXaXsX5XI . . . . . X I 5XaXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXaXaXsXsXsXsXsXaXsXsXsXaXsXsXaXsXsXsXsXsXaXsXsXsXaXsXaXsXsXsXsXsXsXsXaXsXaXsXsXsXaXsXsXaXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXaXsXaXsXsXsXsXaXsX",
"sXsXaXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXaXsXsXaXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXaXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsX5XI O . . . . . . . . . I 5XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXaXsXaXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXaXsXaXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXaXsXaXsXsXsXsXsXsXsXsXsX",
"sXsXsXsXsXsXaXsXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXsXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXsXaXsXsXsXsXsXsXaXsXaXsXsXaXsXsXsXaXsXsXsXsXsXaXsXsXaXsXaXsXaXaXsXsXsXsXsXsXsXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXsXsXaXsXaXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXsXsXsXsXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXsXsXaXsXaXsXsXsXsXaXsXsXaXsXsXaXsXaXsXaXsXaXsXsXsXsXsXaXsXaXsXsXaXsXsXaXsXsX3XA . . . . . M 3XsXaXsXsXaXsXaXsXsXaXsXsXaXsXsXsXaXaXsXaXsXsXaXsXsXaXsXaXsXsXsXsXsXsXsXaXsXsXaXaXsXsXsXsXaXsXsXsXaXsXsXsXaXsXsXaXsXaXsXsXsXaXsXsXaXsXaXsXaXsXsXsXsXsXaXsXaXsXsXsXsXaXsXaXsXsXsXsXaXsXaXsXsXsXsXsXsXsXaXsXsXaXsXaXsXsXaXsXsXaXsXsXsXsXsXsXsXsXaXsXsXaXsXsXaXsXaXsXaXaXsXsXaXsXsXaXsXaXsXsXaXsXsXsXsXaXsXsXaXsXaXsXsXaXsXsXsXaXsXsXaXsXsXsXsXsXsXsXaXsXaXsXaXsXsX",
"sXaXsXaXsXaXsXaXaXsXaXsXaXsXsXaXaXsXaXsXsXaXaXsXsXaXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXsXaXsXaXsXaXsXsXaXsXaXsXsXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXsXsXsXaXsXaXsXsXaXsXaXsXsXaXsXaXsXaXsXaXaXsXaXsXsXaXsXaXaXsXsXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXsXsXsXsXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXaXsXaXsXsXsXsXsXaXsXaXsXaXsXaXsXsXsXsXaXsX2XM . . . . . M 2XaXsXaXsXaXsXaXsXaXsXsXaXsXaXsXsXaXsXsXsXaXsXaXsXsXsXsXsXaXaXsXsXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXaXsXaXsXsXsXaXsXaXsXaXsXaXsXaXsXsXsXsXsXsXsXsXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXsXaXaXaXsXsXaXsXaXsXsXsXsXaXsXsXaXsXaXsXaXsXsXsXaXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXsXaXsXaXaXsXsXaXaXsXaXsXaXsXaXsX",
"aXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXsXaXaXaXaXsXaXsXaXaXaXaXsXaXsXaXsXaXaXsXaXaXaXaXaXsXaXsXsXaXsXaXsXsXaXsXaXsXaXsXaXaXsXsXaXaXaXaXsXaXsXaXsXaXaXsXaXaXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXsXaXaXsXaXsXaXaXsXaXaXaXaXsXaXsXaXsXaXsXaXaXaXaXaXaXsXaXsXsXaXsXaXaXaXsXaXsXaXsXaXsXaXsXaXsXsXaXaXsXaXsXaXsXaXsXaXaXaXaXsXaXsXsXsXaXsXaXaXaXaXsXaXsXsX{.v . . . . . . . . v {.sXsXsXaXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXaXaXsXaXsXaXaXaXaXaXaXsXsXaXaXaXaXsXaXaXsXaXaXaXaXsXaXsXsXaXaXsXsXaXsXaXaXaXsXaXsXaXsXaXsXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXaXaXaXsXsXaXaXsXaXsXaXsXaXsXaXaXsXaXsXaXaXaXaXsXaXaXsXaXsXaXsXaXaXaXsXaXsXaXsXaXsXaXaXaXaXaXaXsXaXsXaXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaX",
"aXsXsXaXsXaXsXaXaXsXsXsXsXaXaXsXaXsXsXaXaXaXsXsXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXsXsXsXaXaXsXaXsXaXaXsXsXaXsXsXaXsXaXaXsXaXsXaXsXaXaXaXaXsXaXsXaXsXaXaXsXsXaXsXsXaXsXaXaXsXsXsXaXsXsXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXaXsXaXaXaXsXsXaXaXsXsXaXaXsXaXaXsXaXsXaXaXsXaXsXaXsXaXsXaXaXsXaXsXsXaXaXsXaXsXaXsXaXaXsXsXsXaXsXsXaXsXaXsXaXaXaXaXsXaXsXaXsXsXaXaXaXsXsXsXaXsXaXsXaXaXsXsX{.r . . . r {.sXsXsXsXaXsXsXaXaXsXaXsXaXaXsXsXaXaXaXsXsXaXsXaXsXsXaXaXsXsXaXsXaXaXsXaXsXaXsXsXaXaXsXsXaXaXsXsXaXsXaXaXsXaXaXsXsXaXsXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXsXsXaXsXsXsXsXsXaXaXsXsXaXsXaXaXaXsXsXsXaXsXaXsXaXsXaXaXaXsXsXsXaXaXsXaXsXaXsXsXsXaXaXaXsXsXaXaXsXsXaXsXaXsXaXaXsXsXaXsXaXaXsXsXsXsXaXaXsXaXsXaXsXaXsXsXsXaXaXsXaXsXaXsXaXaXaXaXaXsXsXsXaXsXaXsXaXsXaXaXaXsXsXsXaXaXsX",
"aXaXaXaXsXaXaXaXaXaXaXaXaXsXaXaXsXaXaXsXaXsXaXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXsXaXaXaXaXsXaXaXsXaXsXaXaXsXaXaXsXaXaXsXaXaXsXaXaXsXaXsXsXaXaXaXsXaXsXaXaXaXaXaXsXaXaXaXsXaXaXaXsXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXsXaXaXsXsXaXaXsXsXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXaXsXaXaXaXaXsXaXaXsXaX[.w . . . . w [.aXsXaXaXsXaXsXaXaXaXsXaXaXsXaXsXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXaXsXaXsXaXaXsXaXaXsXaXsXaXaXsXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXsXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXsXaXsXaXaXsXaXsXaXaXsXaXaXsXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXsXaXsXaXaXsXaXaXaXaXsXaXsXaXsXaXaXaXsXaXaX",
"aXsXaXaXaXaXaXsXaXaXsXaXaXaXaXsXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXsXaXaXaXaXsXaXaXaXaXsXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXsXaXaXaXaXsXaXaXsXaXaXsXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXsXaXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXaXaXaXsXaXsXaXaXaXaXaXaXsXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXpX[.8 . . . . 8 [.aXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXaXaXsXaXaXsXsXaXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXsXaXaXsXaXaXaXaXaXsXaXaXaXaXsXaXsXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXsXaXaXaXsXaXaXaXaXsXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXsX",
"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXpXG.2 X . . 2 G.aXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaX",
"aXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXm.% X . . . . . . 2 S.pXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaX",
"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXS.: . . . . . . : S.yXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX",
"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXeXn.# . . & n.wXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaX",
"aXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXyXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXyXaXyXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXaXyXaXaXaXeXn.+ . . . . . + n.eXaXaXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXaXaXyXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXyXaXaXyXaXaXyXaXaXyXaXaXaXyXaXyXaXaXaXaXaXaXaXyXaXyXaXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyX",
"aXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXyXaXaXyXaXyXyXaXaXaXaXyXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXwXU # . . . + T wXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaX",
"aXyXaXyXyXaXyXaXyXaXaXaXyXaXyXaXyXaXyXaXaXaXyXaXyXaXyXaXaXaXaXyXaXyXaXyXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXyXyXaXaXaXyXaXyXaXaXaXaXyXaXyXaXaXaXaXyXyXaXaXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXaXaXaXyXyXaXyXaXaXyXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXyXaXaXaXaXyXyXaXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXaXaXaXaXaXaXyXwXU . . . . . X T 6XyXaXyXaXyXaXyXaXaXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXyXaXaXyXyXaXyXaXaXyXaXyXaXaXaXyXaXyXyXaXaXaXyXaXaXyXyXaXaXyXyXaXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXyXyXaXaXaXaXyXaXyXaXaXaXyXyXaXyXaXyXaXyXaXaXaXaXaXaXyXaXyXaXaXaXaXyXaXaXyXyXaXaXyXaXyXaXaXyXaXyXaXyXaXaXyXaXaXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXyXaXaXyX",
"aXyXyXaXaXyXaXyXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXyXaXyXaXyXyXaXaXaXaXyXaXyXaXyXaXaXyXyXaXyXaXaXyXyXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXaXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXaXaXaXyXyXaXaXyXaXyXyXaXaXyXaXyXyXyXaXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXaXyXyXaXyXaXyXaXyXaXaXaXyXyXaXyXaXyXyXaXyXaXyXyXaXyX5XS . . . I 3XaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXaXyXyXaXyXaXaXaXaXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXyXaXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXyXaXaXyXaXaXyXyXaXyXaXyXaXyXaXyXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXaXyXaXyXyXaXaXaXaXaXyXaXyXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXyXaXaXaXyXaXaXyXaXyXaXyXaXaXaXaXaXyXaXaXyXaXaXaXyXaXyXaXyXaXyXaXyXaXyXaXaXaXyXaXyXaXyXaXaXaXaXaXyXaXaXyXaXaXaXaXaXaXaXyXaXyXaX",
"yXaXyXaXyXaXyXaXaXyXyXyXaXyXaXaXaXyXyXaXyXaXyXaXaXyXaXaXyXaXyXyXyXaXyXaXaXyXaXyXaXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXyXyXaXyXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXaXyXyXyXyXaXyXaXaXyXaXyXyXaXyXaXyXyXyXaXaXyXaXyXaXyXaXyXyXaXyXyXaXyXaXaXyXaXyXaXaXyXyXyXaXyXyXaXyXyXyXaXyXyXyXaXyXaXaXyXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXaXaXyXyXaXyXyXyXaXyXyXaXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXyXaX6XI . . . . I 6XaXyXyXaXyXaXyXyXaXyXaXyXaXyXyXyXaXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXaXyXaXyXyXaXyXyXaXyXaXyXyXaXyXyXyXaXyXyXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXaXyXyXaXyXaXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXaXyXyXyXyXyXyXaXyXyXyXyXaXyXaXaXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXaXyXaXaXyXaXyXyXaXyXyXyXaXyXyXyXaXaXyXaXyXyXyXyXyXaXyXyXaXyXyXyXaXyXaXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXaXyXaXyX",
"yXaXyXyXyXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXaXyXyXaXyXyXyXyXaXyXyXyXyXaXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXyXyXyXyXyXaXaXyXaXaXyXyXyXyXaXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyX3XM . M 3XyXaXyXaXaXyXyXyXaXyXyXyXyXaXyXyXaXyXyXaXyXyXaXaXyXyXaXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXaXyXaXyXaXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXaXyXyXyXyXyXaXaXyXaXaXyXaXaXyXaXaXyXyXyXyXyXyXaXaXyXaXaXyXyXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXaXyXyXaXyXyXyXyXaXyXyXyXaXyXaXyXyXyXaXyXyXyXaXyXyXaXaXyXyXaXyXyXyXyXaXyXyXyXyX",
"yXyXyXaXyXaXyXyXyXyXyXyXaXyXaXyXyXaXaXyXyXaXyXaXaXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXyXaXyXaXyXyXyXaXaXyXaXyXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXaXyXaXyXyXaXaXyXyXaXyXaXyXyXyXyXaXyXyXyXaXyXyXaXyXaXaXyXyXyXyXyXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXaXyXyXyXyXaXaXyXyXyXyXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXyXyXyXaXaXyXyXaXyXyXyXaXyXaXyXyXaXaXyXaXyXaXyXaXyXyXyXaXaXyXyXyXaXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXyXaXyXyX3XM . . . . M 3XyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXaXyXaXyXyXyXaXaXyXyXyXyXyXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXyXyXyXyXyXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXyXyXyXyXyXaXyXaXyXaXyXaXaXyXyXaXyXaXaXyXaXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXaXyXyXyXyXyXyXyXaXaXyXyXyXyXyXyXyXaXaXyXaXyXaXyXyXyXyXaXaXyXaXyXaXyXyXyXyXyXaXyXyXyXaXaXyXyXyXaXyXyXaXaXyXyXyXaXyXyXaXaXyXyXyXaXyXyXyXyXaXyXyXyXyXaXyXaXaXyXyXyXaXyXyXyXyXaXyXyXaXaXyXyX",
"yXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXaXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXaXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyX{.r . . . c {.yXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXaXyX",
"yXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyX{.w . . . . w {.yXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyX",
"yXyXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyX/.8 . 8 /.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX",
"yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXG.7 . . . 7 G.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX",
"yXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXyXtXyXyXtXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXtXyXyXtXyXyXtXyXyXyXyXyXtXyXyXyXyXtXyXyXyXtXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXtXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXtXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXrXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXtXyXyXtXyXyXyXtXyXyXyXyXyXtXyXtXyXtXyXyXtXyXyXyXyXyXyXtXyXyXyXyXG.3 . . 2 G.tXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXtXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXrXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXrXyXyXrXyXyXyXyXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXtXyXyXyXtXyXtXyXyXyXyXyXyXyX",
"yXyXyXtXtXtXtXyXyXtXtXyXyXrXyXtXyXyXyXtXyXtXyXyXyXyXrXyXrXyXyXrXyXyXrXyXyXyXrXyXyXyXyXrXyXyXyXyXyXtXyXyXyXrXtXyXyXyXyXyXyXyXyXyXtXtXtXyXyXtXyXyXtXyXtXyXyXrXyXtXtXyXtXyXtXyXyXtXtXyXtXtXtXyXyXtXtXyXtXtXyXyXtXtXyXtXtXyXtXyXtXtXyXtXtXyXtXyXyXtXtXyXtXyXtXyXtXyXyXtXyXtXyXtXyXtXtXyXtXyXyXtXyXtXyXyXyXtXtXyXtXyXtXtXtXyXyXyXyXtXyXtXyXyXrXtXyXyXtXtXyXtXyXyXtXyXyXrXrXyXyXtXtXyXyXtXyXyXyXtXyXyXyXtXtXyXtXyXyXtXtXyXyXtXyXtXtXyXtXyXtXyXtXyXtXtXrXeXZ.3 . . 3 Z.tXyXyXtXyXtXyXtXtXyXtXyXyXtXtXyXtXtXyXyXtXtXyXyXtXyXtXyXrXyXrXyXtXyXyXyXtXyXyXyXtXyXtXyXtXyXyXtXtXyXtXyXtXyXtXtXtXyXtXtXtXyXyXyXyXtXtXyXtXtXtXyXtXyXyXyXtXyXyXtXtXtXyXtXtXyXtXtXtXyXtXyXtXyXyXyXtXyXtXtXyXyXyXyXtXtXtXyXtXtXyXyXtXtXyXtXtXtXyXtXyXrXtXyXtXyXyXtXtXyXtXtXyXyXyXtXtXtXyXyXrXyXrXyXyXyXyXyXyXyXyXtXyXyXrXyXrXyXrXyXyXrXyXyXrXyXrXyXrXyXrXyXyXyXyXyXyXrXyXyXyXyXyXyXyXrXtXyXtXyXtXyXyXtXtXyXyXyXyXtXtXyXtXyXyXtXtXyXyXtXyXyXtXtXyXtXyXrX",
"tXyXtXyXtXtXtXtXrXtXtXtXtXyXrXyXtXtXtXtXtXyXrXyXrXyXyXrXrXyXyXrXyXrXyXyXrXyXyXrXrXyXyXrXyXrXrXyXrXtXyXtXtXyXtXyXrXyXyXrXrXyXyXrXtXtXtXtXtXtXyXtXtXtXtXtXtXrXyXyXtXyXtXyXtXtXtXyXtXyXtXyXtXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXyXtXyXtXyXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXyXtXtXyXtXrXyXyXrXrXyXtXtXtXtXtXyXtXyXrXtXyXtXtXtXyXtXtXtXyXtXtXtXtXtXtXtXtXyXtXtXtXyXtXtXtXtXyXtXtXtXyXtXyXtXtXtXtXrXm.% . . . % m.eXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXyXtXtXtXrXyXyXrXyXrXyXrXyXtXtXyXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXyXyXtXtXtXtXtXtXtXtXyXtXyXyXtXyXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXyXtXyXtXtXtXtXyXtXtXtXyXtXyXtXyXtXtXtXtXtXtXtXyXtXyXyXrXrXyXyXrXrXyXyXrXrXyXtXyXyXtXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXrXyXyXrXyXrXyXyXtXtXtXtXtXyXtXyXtXyXtXrXrXyXrXyXtXtXtXtXtXtXtXyXrXyXtXyXyXtXtXtX",
"tXtXtXtXyXtXyXtXyXtXyXtXyXrXyXtXyXtXyXtXyXrXyXtXyXrXyXrXyXyXrXyXrXyXrXrXyXrXyXrXyXyXrXyXyXrXyXyXyXtXtXtXyXrXyXrXyXrXrXyXyXrXrXyXyXtXyXtXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXtXyXtXtXtXtXtXtXtXyXtXyXtXtXyXtXyXtXtXtXtXtXtXtXyXyXtXtXtXtXtXtXtXtXyXtXyXtXyXtXyXtXyXtXyXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXyXtXyXtXtXyXrXyXyXrXyXyXtXtXyXtXtXtXtXyXyXyXrXyXrXyXtXrXyXtXtXtXtXtXtXtXtXtXtXyXtXtXyXtXtXtXyXtXtXtXyXtXyXtXtXtXyXtXtXtXtXtXtXtXtXtXqXn.$ . . : m.qXtXtXtXtXtXtXtXtXtXtXyXtXyXyXtXyXtXyXtXtXyXtXtXtXtXtXtXtXyXyXtXtXyXtXyXtXtXtXtXyXrXtXyXtXtXtXyXtXyXtXtXtXtXyXtXyXtXyXrXtXyXtXyXtXyXtXtXyXtXyXtXtXtXtXtXtXyXtXtXyXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXyXtXtXyXtXyXtXyXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXyXtXtXyXyXtXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXrXyXyXrXyXyXyXyXrXyXyXrXtXyXrXyXyXyXyXyXrXyXrXyXrXyXyXrXyXyXyXyXrXyXyXyXrXyXyXrXyXrXyXyXrXyXrXyXyXtXyXtXtXtXtXtXyXrXtXyXyXtXyXrXyXtXyXtXyXtXtXtXtXtXtXyXrXyXrXyX",
"yXrXrXyXyXrXyXrXtXtXrXyXtXtXyXrXtXtXtXtXyXrXyXtXtXtXyXrXyXyXrXtXyXrXyXrXyXrXyXyXrXrXyXrXrXyXrXrXyXrXyXrXrXyXyXrXrXyXyXrXyXrXrXyXtXtXyXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXyXrXrXyXrXrXyXrXyXrXyXtXtXtXtXrXyXyXrXyXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXeXn.+ . . # n.eXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXrXtXtXtXtXtXtXtXtXyXrXtXyXtXtXtXtXtXtXyXrXtXrXyXrXyXtXtXtXtXtXyXrXrXyXrXyXtXtXtXtXtXtXtXtXtXtXtXtXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXyXyXrXrXyXyXrXtXyXyXrXrXtXtXtXyXrXyXrXyXrXyXyXrXrXyXrX",
"rXrXyXrXrXyXrXyXrXrXyXrXrXtXrXyXrXtXtXtXrXrXrXtXtXrXrXyXrXrXrXtXrXrXrXyXyXrXrXrXrXyXyXrXyXrXrXyXrXyXrXyXyXrXrXyXyXrXrXyXrXyXrXrXrXtXrXyXtXtXtXtXtXrXtXtXrXtXtXtXtXtXtXtXtXtXtXrXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXrXtXtXtXtXtXtXtXtXtXrXtXtXtXtXtXrXtXtXtXtXrXtXtXrXtXrXtXtXrXtXtXtXtXtXrXtXtXtXtXtXtXrXtXtXtXtXtXtXtXrXtXtXtXyXrXrXyXrXrXyXrXrXrXrXrXtXrXtXrXtXrXrXyXrXyXrXrXtXtXrXtXtXtXrXtXtXtXrXyXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXrXtXrXtXtXtXtXrXeXrXtX6XU + O U 6XtXrXtXrXyXtXtXtXtXtXrXtXtXtXtXtXtXtXtXtXtXrXtXtXtXtXtXtXrXtXrXtXtXtXrXtXrXtXtXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXrXtXtXtXrXtXtXrXtXrXtXtXtXtXrXtXrXtXrXtXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXtXtXrXtXrXtXtXtXrXtXtXtXtXrXtXtXtXtXrXtXtXtXrXyXtXrXtXrXrXyXtXrXtXrXrXyXyXrXrXrXrXtXrXtXrXyXrXrXrXrXtXtXrXtXrXtXtXtXtXrXtXtXyXrXrXyXyXrXyXrXrXyXyXrXyXrXrXyXrXyXrXrXyXrXrXyXyXrXrXyXrXrXrXyXtXtXtXrXrXrXrXyXyXrXrXrXrXyXyXrX",
"rXyXrXyXrXrXrXrXtXrXyXrXtXrXrXrXrXtXrXtXrXyXrXrXrXrXrXrXyXrXtXrXrXyXrXrXrXyXrXyXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXyXtXrXrXrXrXrXtXrXtXrXtXrXtXrXtXrXrXtXrXtXtXrXrXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXrXrXrXtXrXtXrXtXrXrXtXrXtXrXtXtXtXrXtXrXtXtXtXtXtXrXrXtXrXtXrXtXrXtXrXrXrXrXtXrXtXrXtXrXrXrXtXrXtXyXrXrXrXyXyXrXrXyXrXyXrXtXtXrXtXrXrXrXrXrXtXrXyXrXtXrXtXrXtXrXtXrXrXrXrXrXrXtXrXrXtXrXtXrXtXtXtXtXrXtXrXtXrXtXrXtXtXtXrXrXtXrXtXtXtXrX6XU . . . O U 6XtXtXrXrXrXtXrXrXrXtXrXtXrXtXrXrXrXtXrXrXtXrXtXrXtXrXrXrXtXrXtXrXtXrXtXtXtXrXtXrXrXtXrXrXtXrXtXrXtXtXrXtXrXrXtXrXtXrXtXrXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXrXtXtXrXrXtXtXrXtXrXtXrXrXtXrXtXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXrXrXtXrXtXtXtXrXrXtXrXtXtXrXtXrXtXrXrXtXrXtXtXrXtXtXrXrXrXrXrXtXrXrXtXrXrXrXrXtXtXrXtXrXrXrXyXrXtXtXrXyXrXrXrXyXrXtXrXtXrXtXtXtXrXrXtXrXtXyXrXyXrXrXyXrXrXyXrXrXrXyXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXyXrXrXrXyXrXtXrXyXrXrXrXyXrXyXrXrXrXrX",
"rXrXrXrXyXrXrXyXrXyXrXrXrXyXrXyXtXrXtXrXrXrXyXrXyXrXyXrXrXrXrXyXrXrXyXyXrXrXrXrXyXrXyXrXrXrXyXrXrXyXrXyXrXrXyXrXrXrXyXrXrXrXrXrXrXyXrXyXrXtXrXtXtXtXtXrXtXtXrXrXtXrXtXrXrXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXtXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXrXtXtXtXrXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXrXtXtXrXtXtXtXtXtXrXtXrXrXyXyXrXrXrXyXrXrXyXrXrXtXtXtXrXyXyXrXtXrXtXrXtXrXtXtXrXtXtXrXrXyXrXyXrXtXrXrXrXtXtXtXrXtXrXrXrXtXrXtXtXtXrXrXtXrXrXtXtXrXtXrXrXtXtXtXrX6XS . . S 6XrXrXtXrXtXtXrXrXtXrXtXrXrXtXtXtXrXtXtXrXrXtXrXtXrXtXrXtXrXrXtXtXtXtXtXrXtXrXtXtXtXtXtXrXtXtXrXtXrXtXtXrXrXrXtXtXrXtXrXtXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXtXtXtXtXtXrXtXrXtXtXtXrXtXtXrXtXrXtXtXrXtXrXrXtXtXrXtXrXtXrXrXtXrXtXrXtXrXtXtXrXtXrXrXtXtXtXrXtXtXrXtXrXtXrXrXtXrXyXrXtXtXrXrXtXrXtXrXyXrXtXtXrXyXrXyXrXrXtXtXtXrXtXtXrXtXrXrXtXrXrXyXyXrXrXtXtXrXrXtXrXrXtXtXrXtXrXrXrXrXrXrXrXrXyXrXrXyXrXrXrXyXrXrXyXrXrXyXrXyXrXyXrXyXrXrXrXrXyXrXrXtXrXrXrXyXrXrXrXrXrXyXrXyXrX",
"rXrXrXyXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXtXrXrXtXrXrXrXtXrXtXrXrXtXrXrXrXrXrXrXrXtXrXrXrXtXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXtX|.S . X o S 3XrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXtXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXtXrXrXtXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXtXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX",
"rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXeXrXtX{.M . M {.rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX",
"rXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrX{.M . M {.tXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXqXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX",
"qXrXqXrXqXrXqXrXqXrXqXrXrXrXqXrXrXrXrXqXrXrXqXrXrXrXqXrXqXrXrXrXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXqXqXrXrXrXrXrXqXqXrXqXrXrXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXqXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXrXrXqXqXrXqXrX0XrXrX0XrXrXrX0XqXrXqXrXqXqXrXrXrXqXrXrXqXrXqXrXrXqXrXqXqXrXqXrXrXqXrXqXrXrXqXrXqXrXqXrXrXrXqXqXrXrXqXrXqXrXqXrXqXrXqXrXrXqXrXrXqXrXqXrXqXrXrXrXrXqXrXqXrXqXrXrXrXrXqXrXqXrXrXrXqXrXqXrXrXrXrXrXrXqXrXqXqXrXrXqXrXqXrXqXqXrXqXrXrXqXrXrXrXrXqXrXqX/.c . . w {.rXrXrXqXrXrXqXrXqXrXqXqXrXqXrXrXrXqXrXrX0XrXrXrXrXrXqXrXqXrXrXqXrXrXrXqXrXqXrXrXrXqXqXrXqXrXqXrXrXrXqXqXrXrXrXrXrXrXqXqXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXqXrXrXrXqXrXqXqXrXrXrXrXrXqXrXrXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXrXqXrXrXrXqXrXqXrXrXrXrXqXrXrXrXrXqXrXqXrXqXqXrXqXrXqXrXqXrXqXrXrXqXrXqXrXrXqXrXqXrXqXrXrXrXrXqXqXrXrXrXqXqXrXqXrXqXrXqXrXrXrXrXrXrXrXqXrXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXqXrXrXrXqXrXqXrXrXrX",
"rXqXrXqXrXqXrXrXrXrXqXrXqXrXrXqXqXrXqXrXrXrXrXrXqXrXrXrXqXrXqXrXrXrXqXrXqXrXrXqXqXrXqXrXrXqXqXrXrXqXqXrXrXrXrXqXqXrXrXrXrXqXqXrXrXqXrXqXrXrXrXqXrXqXrXrXrXqXrXrXqXrXqXrXqXrXqXrX0XrXqXrXrXrXqXrXrXrXqXrXqXrXrXrXrXrXrXrXrXqXrXqXrXqXrXqXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXqXrXrXqXrXqXrXrXrXrXqXrXqXrXqXrXqXrXrXqXrXqXrXrXrXqXrXqXrXrXrXqXqXrXqXrXqXrXrXqXrXqXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXqXqXrXqXrXqXrXqXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXqX9X{.c w /.rXqXrXqXrXqXrXqXrXqXrXrXqXrXqXrXqXqXrXrXrXrXqXrXrXqXqXrXrXrXrXqXrXqXrXqXrXqXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXrXqXrXqXrXrXrXrXrXqXrXqXrXrXrXrXrXrXrXqXrXqXrXqXrXqXrXrXrXqXrXrXqXqXrXrXqXrXrXrXrXrXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXqXrXrXrXrXrXrXqXqXrXrXrXqXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXqXrXqXrXrXrXqXrXqXrXrXqXqXrXqXrXrXqXrXqXqXrXrXqXrXqXrXrX",
"rXqXqXrXqXrXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXqXqXrXqXqXrXqXrXqXqXqXqXrXqXrXqXrXqXrXqXrXqXqXrXqXrXqXrXrXqXqXqXrXqXqXqXqXqXqXrXrXqXqXrXrXqXqXqXqXrXrXqXqXqXqXrXqXrXqXrXqXrXrXrXqXrX0XrXrXqX0XrXrXqXqXrXrXqXrXqXqXrXqXqXqXqXqXrXqXrXrXqXrXqXqXqXqXrXqXrXrXqXrXqXrXqXqXqXqXrXrXqXqXqXqXrXqXrXqXqXqXrXrXqXrXrXrXqXrXqXrXqXrXqXqXqXqXrXrXqXqXqXqXrXrXqXrXqXrXqXqXrXqXrXqXqXqXrXqXrXqXqXrXqXqXqXrXqXqXrXqXqXqXrXqXrXqXqXrXqXqXqXrXqXrXqXrXqXrXrXrXqXrXrXqXrXrXqXqXqXrXqXqXqXqXrXqXqXqXrXqXqXqXqXqXrXqXrX0X/.7 8 /.qXqXrXrXqXqXqXrXqXrXqXrXrXqXrXqXrXqXrXrXqXqXqXrXqXqXrXqXrXqXqXqXrXrXqXrXrXrXqXrXrXqXrXrXqXqXqXrXqXqXrXqXrXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXrXqXqXqXrXqXqXrXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXqXrXqXrXqXqXqXrXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXrXqXrXqXqXrXqXqXqXqXrXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXqXrXqXqXqXqXrXqXrXqXqXrXqXqXqXqXqXqXrXrXqXqXqXqXqXqXrXrXqXqXqXrXqXrXrXqXrXqXrXqXqXrXqXqXqXrXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXrXqXqXqXqXrXqXqXqXrXqXrXqXrXrXqXrXqXrXqXqXqXrXqXrXqXqX",
"qXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXrXqXqXqXqXqXrXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXrX0XrXrXqX0XrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqX0XrXqXqXqXqXqXqXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXrXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqX0XqXqXG.8 8 G.qX0XqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqX0XqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXrXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqX",
"qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXrX0X0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXZ.2 . > Z.rX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX",
"qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXrX0XqXqXqXqXqXqXqXqXqX0XrX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XZ.: : Z.9XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqX",
"qXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqX0XqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XrXqXqXqXqXqXqXqXqX0XrX0XrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqX0XqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqX0Xm.% % m.0XqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqX",
"0X0XqXqX0XqXqXqX0XqX0XqXqX0XqXqXqXqXqX0XqX0X0X0X0XqX0XqXqX0XqXqXqX0XqXqX0XqXqXqXqX0X0XqXqXqX0XqX0XqXqX0X0XqXqXqX0XqXqXqX0XqXqX0XqX0XqXqXqX0X0XqXqX0X0XqX0XqXqXqXqXqX0XqX0XqX0XqX0XqXqX0XrX0X0XrXqXqXqXqX0XqXqXqX0XqX0XqXqXqX0XqX0XqX0X0X0XqX0X0XqX0XqXqXqX0XqX0X0X0XqX0X0XqX0XqXqX0X0XqX0XqXqXqXqXqXqX0XqX0X0XqXqX0XqX0XqX0XqXqX0X0XqX0XqX0XqXqX0XqX0XqXqXqX0XqX0XqX0XqXqX0XqX0XqXqXqX0X0XqXqXqX0XqX0XqXqX0XqX0XqX0X0XqX0XqXqX0XqXqX0XqXqX0X0XqX0X0XqX0X0XqXqXqX0XqXqXqXqX0XqXqX0XqX0X0X0XqX0XqX0XqXqX0XqXqXqX9XqXqX9Xb.% : b.6XqXqXqX0XqXqX0XqX0XqXqXqXqX0X0XqX0XqXqX0X0XqXqXqX0XqX0XqXqX0XqXqX0XqXqX0XqX0XqXqXqXqXqX0X0XqXqX0X0XqX0X0XqX0X0XqXqXqXqXqX0X0XqX0XqX0X0XqXqXqXqXqXqXqX0XqXqXqXqXqX0XqX0XqXqX0XqX0X0XqX8XqXqXqXqXqXqXqX0XqXqX0XqXqX0XqXqX0XqXqXqX0XqX0X0XqXqX0XqX0XqX0XqXqX0XqXqXqXqXqXqXqXqXqX0XqXqXqX0XqX0XqXqXqX0XqXqXqX0XqXqXqXqX0XqXqX0X0X0X0XqXqXqXqXqXqX0X0XqXqXqXqX0XqXqXqX0X0XqXqX0X0X0XqX0XqXqXqX0XqXqXqX0XqX0XqXqX0X0XqXqX0XqXqXqX0X0XqXqXqX0XqX0X0XqX0XqXqX0XqXqXqX0XqXqX0XqXqXqX0X0XqX0XqX0XqX0XqXqXqX0XqX0XqXqXqXqXqXqXqX",
"0XqX0XqX0XqX0X0XqX0X0X0XqX0XqXqX0X0X0XqXqX0X0X0X0X0XqX0X0XqX0X0X0X0X0X0X0X0X0X0X0XqXqXqX0XqX0XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0XqX0XqX0X0X0X0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0XqX0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0XqX0X0X0XqX0XqX0X0X0XrX0X0X0XqXqX0X0X0XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0X0X0X0X8XqX0X0X0XqX0XqX0X0XqX0X0XqX0XqX0X0XqX0X0XqX0X0X0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0X0X0XqX0X0X0XqX0X0XqX0X0XqX0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0XqX0X0XqX0X0X0XqXqXqX8XqX8XqX0XqX0X0X0XqXqX0X0X0XqX0XqX0X0X0XqX0X0X0X0X0X6Xb.# + b.9XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0X0XqX0XqX0X0X0X0X0XqX0X0X0XqX0X0XqX0X0X0XqX0XqX0X0XqX0X0X0X0X0XqX0XqX0X0X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0XqX0X0XqX0XqXqXqX8X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0XqX0X0X0XqXqX0X0X0X0X0X0XqX0X0X8XqXqX8XqX8X0X0X0X0X0XqX0X0X0X0X0XqX0X0X0XqX0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0XqX0X0XqXqX0X0X0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0XqX0XqX0X0X0XqX0X0XqX0X0X0X0XqX0X0X0XqX0X0XqX0X0X0X0X0X0X0X0X0XqXqX0X0X0X0X0XqX0X0XqX0X0XqXqXqX0XqX0XqX0X0X0X0X0X0X0X0X",
"0X0XqX0X0X0X0XqX0X0X0X0XqXqX0X0X0XqX0XqX0X0X0X0XqX0X0X0X0X0XqX0XqX0X0X0XqX0XqX0XqX0XqX0XqX0X8XqXqX0X0XqX0X0X0X0X0X0X0X0XqX0XqX0X0X0X0XqX0XqX0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0XqX0X0XqX0XqX0XqXqX0X0X0X0XqX0X0X0X0XqX0X0X0X0XqX0X0X0X0X0XqX0X0X0X0X0X0XqX0X0X0X0XqX0X0XqX0X0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0X0XqX0X0X0XqX8XqXqX0XqX0XqX0X0X0XqX0X0X0X0X0X0X0X0X0XqX0X0X0XqX0X0X0XqX0X0X0X0XqX0X0XqX0XqX0XqX0XqX0X0X0XqX0X0X0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0X0XqX0XqX0X0X0X0XqX0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X6XS S |.0X0X0XqX0XqX0X0X0X0X0X0X0X0X0X0XqX0X0XqX0X0XqX0X0X0X0X0XqX0X0X0XqX0XqX0X0X0XqX0X0XqX0X0X0XqX0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0XqX0X0X0X0X0XqX0X0X0XqX0X0X0X0X0X0X0X0X0XqX0XqX0XqXqX0X0XqX0X0X0X0X0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0X0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0X0XqXqX0XqX0X0X0X0X0XqX0X0XqX",
"0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8XqXqX8XqXqX8XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX8XqX0X8X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X7X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8XqX0X0X0X0X0X0X0X0X0X0X",
"0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X8X8X0X8X8XqX8X0X0X0X8X0X0X0X0XqX0X8X0X8XqX8XqX0X8X8X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X",
"0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X8X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X8X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X8X0X0X0X8X0X8X0X0X8X0X0X0X0X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8XqX8XqX8X0X0X8X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X8X0X8X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X8X0X8X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X8X0X0X8X0X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X0X8X0X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X8X0X8X0X8XqX8XqX0X0X8X0X8X0X0X8X",
"8X0X0X0X8X0X0X8X8X0X0X0X8X0X0X8X0X0X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X8X0X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0XqX8X0X0X8XqX0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X8X0X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X0X8X0X0X0X8X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X8X0X8X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X0X8X0X8X0X0X8X0X0X8X0X0X0X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X8X0X0X0X8X0X0X8X8X0X0X0X0X0X0X8X0X0X8X0X8X0X8X0X0X8X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X8XqX0X0X8X0X",
"8X8X8X0X8X8X0X0X0X0X8X0X0X8X8X0X8X0X8X8X8X0X8X0X0X8X0X8X8X8X8X0X8X8X0X8X8X0X0X8X8XqX8X0X8X8X8X8X8X8X8XqX0X8X8X0X8X8X0X0X8X0X0X8X0X8X0X8X8X0X8X8X8X8X0X0X0X8X0X8X0X0X8X8X8X0X8X8X0X8X8X8X8X0X8X8X8X8X8X0X0X8X8X0X8X8X8X8X8X0X0X8X0X0X0X8X8X8X8X8X8X0X0X0X0X8X8X0X8X0X0X0X8X8X8X0X0X0X8X0X8X8X0X8X8X0X8X8X8X0X7X0X8X8X0X8X8X8X8X0X8X8X0X8X8X8XqX8X8X0X8X0X8X8X8X8X0X8X8X0X0X8X8X0X8X8X0X0X8X8X8X0X8X0X0X8X8X0X8X8X0X8X0X8X8X8X8X0X8X8X0X0X8X0X0X8X8X0X8X0X8X0X8X0X0X8X8X0X8X0X0X8X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X0X0X8X0X0X8X0X0X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X0X8X8X0X0X8X8X0X8X8X0X8X0X8X0X8X8X0X8X0X8X0X8X8X0X0X8X0X0X8X8X0X8X8X0X8X0X8X8X8X8X8X0X8X0X8X0X0X8X0X0X0X8X8X0X8X0X8X0X0X0X8X8X0X8X0X0X8X0X8X0X8X8X8X0X8X8X8X8X0X0X8X0X0X8X8X8X0X0X8X8X8X0X8X0X8X0X0X0X0X8X8X0X8X0X0X8X0X8X8X0X8X0X8X8X0X8X8X0X8X0X0X8X8X0X0X8X8X8X8X0X8X0X0X8X8X0X8X0X8X8X0X8X8X0X8X0X0X8X8X0X8X0X0X8X0X8X8X0X8X8X0X8X8X0X8X0X0X8X0X8X8X0X0X8X0X0X0X0X8X0X8X8X8X0X0X0X0X8X0X8X0X0X8X0X0X8X8X0X0X0X8X8X8X0X8X0X8X0X8X0X8X0X8X0X8X0X0X8X8X0X8X8X0X8X8X8X0X8X0X8X0X8X",
"8X0X8X8X8X0X8X8X8X8X0X8X8X8X8X0X0X8X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X9X8X0X8X0X8X8X8X8X8X8X8X8X8X0X8X0X8X8X8X8X0X8X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X0X8X8X8X0X8X8X0X8X8X8X8X8X0X8X8X8X0X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X8X7X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X0X8X0X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X8X0X8X8X8X0X8X8X0X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X0X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X0X8X8X0X8X8X0X8X8X0X0X8X8X8X0X8X8X0X8X8X8X8X0X8X0X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X0X8X8X8X8X0X8X0X8X8X8X8X0X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X0X8X0X8X0X8X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X0X8X8X0X8X0X8X8X8X8X0X8X8X8X8X0X8X8X0X8X8X8X8X8X8X8X0X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X8X8X8X0X8X0X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X0X8X8X8X0X8X8X0X8X0X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X8X8X8X8X8X",
"8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X0X7X8X8X0X8X8X8X8X8X8X7X0X8X8X8X8X8X0X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8XoX0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X",
"8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X7X8X8X8X8X7XoX8X8X8X8XoX8X8X8X8X8X8X8X7X8X8X7X8X8X7X7X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X7X8X8X7X8X8X7X8X8X7X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X7X8X8X8X7X8X7X8X8X7X8X8X8X8X8X8X7X8X8X7X0X7X0X7X8X8X8X8X8X8X8X0X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8XoX8X8X8X8X8X8XoX8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X8X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X0X8X8X8X8X8X8XoX8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X7X8X8X8X8X7X8X8X8X8X7X8X8X7X8XoX8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X7X8X8X7X8X8X8X7X0X7X0X7X0X7X7X0X0X7X7X0X7X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X",
"8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X7X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X7X8X8X8X8X8X7X8X7X0X7X7X0X8X7X8X8X7X0X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X7X8X8X7X8X8X7X7X8X8X8X8X8X8XoX8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X7X7X8X8X0X0X8X0XoXoX8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X0X0X7X7X0X7X7X0X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8XoX8X",
"7X8X7X8X7X8X8X8X7X8X8X8X7X8X7X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X7X7X8X7X8X8X7X8X8X7X8X8X8X8X7X7X8X7X8X7X8X8X8X8X8X8X8X8X7X7X8X8X7X7X8X7X7X8X8X7X7X7X8X7X8X8X7X8X7X7X8X7X7X7X7X7X8X8X7X7X8X7X7X7X8X8X8X7X8X7X8X8X8X8X8X7X8X8X7X7X8X7X7X7X7X8X8X8X7X8X8X8X7X7X7X8X7X8X7X7X8X0X7X7X8X7X7X8X8X7X8X8X7X7X0X7X8X8X8X7X8X7X8X7X8X7X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X8X8X8X7X8X8X7X8X7X7X7X8X7X8X8X7X8X7X8XoX8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X7X8X7X7X7X8X7X8X8X7X7X8X7X7X7X8X7X8X7X7X7X8X8X8X7X8X7X7X8X7X7X7X7X7X8X8X7X8X7X8X7X8X7X7X7X8X8X7X8X8X7X7X7X8X7X7X8X8X8X7X7X7X7X8X7X8X7X7X8X8X8X8X7X8X8X7X8XoX0XoXoX0XoX8XoX8X8X8X8X8X8X8X7X8X7X7X8X8X8X7X7X8X7X7X8X8X8X7X7X8X8X7X8X7X7X7X7X8X8X7X8X7X7X7X7X8X8X7X8X7X7X7X7X7X8X8X8X8X7X8X8X8X8X8XoX8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X7X8X7X7X8X8X7X8X8X7X7X7X7X8X7X8X8X7X7X8X7X8X7X7X7X7X8X8X7X7X8X8X8X8X7X8X7X8X7X7X8X8X7X8X8X8X7X8X8X7X7X8X8X7X7X7X7X8X8X8X7X8X8X8X7X8X8X7X8X8X7X7X8X8X7X7X8X7X8X8X7X8X7X8X7X8X8X8X7X8X7X8X7X8X7X8X7X0X7X7X7X7X7X7X8X7X7X8X8X8X7X8X7X8X8X7X8X8X7X8X8X7X7X8X7X8X8X8X8X7X8X7X8X8X8X8X8X8X8X8X",
"7X7X8X7X7X7X7X7X7X7X7X7X8X7X7X7X8X7X7X7X7X7XoX8X8XoXoX8X8XoX8X8X7X8X7X7X8X7X7X7X7X7X7X7X7X7X7X7X8XoX8X7X8XoX7X7XoX8XoX8X7X8X8XoX8X7X7X7X7X8X7X7X8X7X8X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X9X7X8XoX8XoXoX8XoX8XoXoX8X8X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X8X7X8X7X7X8X8XoX8X8XoX8XoXoX8XoX8X8XoXoX8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X8X7X8X8XoX8X0XoX8X8XoX8XoX8X8XoX8XoX7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X7X7X7X7X8XoX8XoX8XoX8XoXoX8XoX8X8XoXoX8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X8X7X7X7X7X7X7X7X8X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X0X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X8XoX7X7X8X7X7X7X7X7XoX8XoX8X8XoX",
"7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoXoX8XoX8XoX8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8XoX8X8XoX8XoX8X8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8XoXoX8X8XoX8XoX8XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8XoX8XoX8XoX8XoX8XoX8X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8X8XoX8XoX8X8XoX8XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X",
"7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X8X8XoX8X8XoXoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8XoX8XoX8XoXoX8XoX8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8X8XoX8XoX8XoX8X8X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X0XoX8XoXoX8XoX8XoX8XoX8XoX8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8XoX8X8XoX8XoX8X8X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X",
"7X7X7X7X7XoXoX7X7XoX7X7X7X7X7X7X7X7XoX7XoX7X8XoXoX8X8XoXoX8XoX8X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX8XoX7X7X7XoX7XoX7X7XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X.X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXXXX7X7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7XoX7X7X7XoXoX8X8XoXoX8X8X8X8XoXoXoX7XoX8XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8XoXoX8XoX8XoX8XoXoXoXoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoXoX8XoX8XoXoXoX8XoX8XoX8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoXoX8XoX8X8XoX8XoX8XoXoXoXoX8X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7XXX7X7X7X7X7X7X7XXXXX7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7X7X7XXX7XXXXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7XoX7X7X7X7X7XoX7XoX7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7XoX7X7X7X7X7XoX7XoX7X7X7X7X7XoX7X7X7XoX7X7X7XoX7XoX7X7X7XoX8XoX8X",
"oXoX7XoX7XoX7X7XoX7XoX7XoX7XoXoX7XoX7X7X7XoXoX7XoXoX7XoXoX8XoXoXoX7XoX7X7XoXoX7XoX7XoXoX7XoXoX7X7XoX7XoX7XoX7X7X7XoX7XoX7XoXoXoXoX7XoXoX7XoXoX7XoXoX7XoXoX7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X.X7XXX7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7XXX7X7XXX7XXX7X7X7X7X7XXX7X7X7X7XoX7XoX7XoXoX7XoX7XoXoX7XoXoX7XoXoX7XoXoXoX7XoXoXoX7X7X7XoXoXoX8XoXoX8XoXoXoXoXoXoX8XoX7X7XoX7X7X7X7X7X7XXX7X7XXX7X7XXX7X7X7XoX8XoXoXoX8XoXoXoX8XoXoX8XoXoXoXoX7XoXoX7XoXoX7X7XoX7XoXoX7XoXoX7X7X7X7X.X7X7X7X7X.X7X7X7X7X7X7XoX7XoX7XoXoXoX7XoX7XoX7XoX7XoX7X7X7X7XoXoX7XoX7X7XoXoX7XoX7X7XoX7X7X7X7X.X7X7X7X7X.X7X7X7X7X7X7XoX8XoX0XoXoXoXoX8X8XoXoXoXoXoX8X7XoX7XoXoX7XoXoX7XoXoX7XoX7X7XoX7X7X7X7XXX7X7XXX7X7X7X7X7X7XXX7X7X7X7X7X7X7XXX7X7XXX7XXX7X7X7X7XoXoX8XoXoXoXoXoXoX8XoXoX8XoXoXoX7XoXoX7XoXoX7XoXoX7XoX7X7XoXoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7XXX7X7X7X7X7X7XXX7X7XXXoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7XXX7X7X7X7XoX7XoX7XoX7XoX7X7X7XoX7X7XoX7X7XoX7X7XoX7X7XoX7XoX7XoX7XoXoXoX7XoXoX7XoX7XoX7X7X7XoXoX7XoX7XoX7X7XoXoX7XoX7X7XoX7XoX7XoX7XoX7X7XoX7X7XoX7XoXoXoX",
"oX7XoX7XoXoX7XoXoXoX7X7XoXoXoXoX7XoX7XoXoXoXoX7XoX8XoXoXoX8X8XoX7XoXoX7XoXoXoXoXoXoX7XoXoXoXoXoXoXoXoX7XoXoXoXoX7XoX7XoXoXoX7XoXoXoX7X7XoXoXoXoX7X7XoXoX7XoXoXoXoXoXoX7XoX7X7XoXoXoXoX7X7XoXoXoX7XXX7XXX7X7XXX7X7X.X7X7XXX7XXX7X7X.X7X.X7X.X7X7X7X7XXXXX7X7X7XXXoXoX7XoXoX7XoXoXoXoXoXoX7XoX7XoXoX7XoX7XoXoXoX7XoX7XoXoXoX7XoX7XoXoXoX7X7XoXoXoX7XoXoXoXoX7X7XoX7X7XXX7XoXoX7X7XoXoX7XoXoXoX7XXXoXoX7XoXoX9XoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X.X.X7X7X.X7X7XXX7X7XXX7X7X7X7XXX7X7X7XXX7X7XXXoXoX7X7XoXoXoXoX7XXXXX7XXX7X7X7XXX7X7X7XXX7X7X7X7X7X7X.X7X7X7X7X7X.X.X7X7X'.7X7X7XoXoX7XoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoX7X7XoXoX7XXXXX7X7X7XXX7X7X7XXX7X7XXX7X7X7X7X7X7X7X'..X7X7X'.7X7XoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoX9XoXoXoXoXXXXX7XXX.X7X7X.X7X7X7X7X.X7X7X'.7XXX7X7XXX7X7X7XXXXX7X7XoX7XoXoX'.7X7X7X.X7X7X7X7X7X7X7X'.7X7X7XoXoX7X7XoXoXoXoX7X7XXX7XoXoX7X7XoXoXoXoX7X7XoXoX7XoXoXoXoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7XoX7XoXoXoXoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7X",
"oXoXoX7XoXoXoXoX7XoXoXoXoX7X7XoX7XoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoX7XoXoXoXoX7XoXoXoX7XoXoX7XoX7XoX7XoXoXoX7XoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7XoX7X7XoXoXoXoXoXoX7X7XoXoXoXoX7X7X7X7XXX7X7XXXXX7X7X7X7X7X.X7X7X7X7X7X7X7X7X7X.X7XXX7X7X7X7XXX7XXXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoX7XoX7XoXoXoXoXoX7XoXoXoX7X7X7XoXoXoXoX7X7XoXoX7X7XoXoXoX7XXX7XXX7X7XoXoXoXXX7XoXoX7XoX7X7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoX8XoXoXoXoXoXoX8XoXoXoXoXoX7X7X7X7X7X7X.X7X7X7XXX7X7XXXXX7X7XXXXX7X7XXX7X7X7XoXoXoXoX7X7XoXXX7X7X7X7X7XXXXX7X7XXXXX7X7XXXXX.X7X7X7X.X7X.X7X7X7X7X7X7X7X7X7XoXoXoXoX9XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXX7X7XoX7X7XoXXXXX7X7XXXXX7X7XXX7X7XXX.X7X.X7X7X7X7X7X7X7X7X7XoXoXoX8XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X7X7X7X7X7X7X7X.X7X7X.X7X7X7X7X7X7XXX7XXX7XXX7X7X7X7XXXoX7XoX7X7X7XXX7X7X7X7X.X7X.X7X7X7X7X7X7X7XoXoXoXoX7X7XoXoXoXXX7X7XoXoXoXoX7X7XoXoXoXoXoXoXoXoX7XoXoXoX7XoX7X7XoXoXoXoX7XoX7XoXoXoXoXoXoXoX7XoX7XoXoXoX7XoX7XoXoXoX9XoXoXoXoXoX7XoXoXoXoXoX7X7XoXoXoXoXoX",
"oXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XXX7XXX7X7XXX7X.X7X.X7X7X7XXX7X7X.X7X7X.X7X7XXX7X7X7XXX7XXX7XoX7XoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X7X7XXXoXoXoXoX7X7XoXoXoXoXXX7XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X.X7X7X7X7X7X7X7XXX7XXX7X7XXX7X7X7XXX7X7XXXXX7XoXoXoXoXoX7XoXoX7XXX7XXXXX7X7X7XXX7XXX7XXX7XXX7X7X7X7X.X7X7X.X7X7X7X7X7X7X7X7X7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoX7XXXoXoXoXoX7XoX7XXX7XXX7XXX7XXX7X7XXX7X7X7X.X7X7X.X7X7X7X7X7X7XoXoXoXoXoXoXoX7XoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XXX7X.X7X7X7X7X7X7X7X7X7X7X7X7XXXXX7X7XXX7X7XXX7XXX7XoXoXoXoX7X7X7X7X7X7X7X7X7X7X.X.X7X.X'.7XoXoXoXoXoXoXoXoX7XoX7XXXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoX7XoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X",
"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XXX7XXXXX7XXX7X7X.X7X7X.X7X.X7X.X7X7X.X7X7X7X.X7XXXXXXX7XXX7XXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXXXX7XoXoXoXoXXXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX.X7X7X.X.X.X7X.XXX7XXX7XXXXX7XXXXXXX7XXXXX7XXXXXoXoXoXoXoXXXoXoXXX7XoXXX7XXXXXXX7XXX7XXX7XXX7XXX.X7X.X7X.X7X7X7X'.7X7X.X.X7X7X'.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XoXoXoXoXoXoXXX7XXX7XXX7XXX7XXXXX7XXX.X7X7X7X7X7X7X.X.X7X7X'.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XXX7XXX7X7X.X.X7X.X.X7X7X7X'.7XXX7XXX7XXX7XXXXX7XXX7XXXoXoXoXoX.X7X7X'..X7X.X.X.X7X7X7X7X7X7X7XoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX",
"oXoXoXoXoX.XoXoXoXoXXXXXXXoXoXoXoXoXoXoXXXXXoXoXoXoXoXoXoXoX.XoXoXXXoXoXXXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXXXoXXXoXXXoXXXoXXXXXoXoXoXoXoXoXXX7XXX7XoXXXoXoXXXoXoXoXXXoXoXoXoXoXXXoX.XoXoXXXoXoXXXXXXXXXXX7X7X7XXXXX7XXX.X7X.X7X.X7X7X7X.X7X.X7X.X7X.X7X7XXX7X7X.X7XoXoXoXoXoXXXoXoXoXoXXXoXoXXXXXoXoXXXXXoXoXoXoXXXoXXXoXoXoXoXoXXXXXXXoXoXXXoXoXXXoXoXXXoXXXoXXXoXXXXXoXoXXXoXoXoXXXoXoXoXXXoXXXoXoXoXXXXXoXoXoXXXoXoXoXoXXXoXXXoXoXoXoXXXoXXXoXoXoXoXoXoXoXoXXXoX.X7X.X7X7X7X.X7X7X.X7XXX7X.X7X.XXX7X7XXX7XXX7XXXXXoXoXoXoXXXXXXXXXoXXXoXXXXX7X7XXXXXXXXXXXXX7X7X7X.X.X7X.X7X7X.X.X7X.X7X7X.X7X.XXXoXoXXXoXoXXXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXXXXXoXoXoXoXXXoXoXoXXXoXXXoXoXXX7XoXXXXX7XXXXX7XXXXXXX7XXX7X'.7X7X.X.X7X.X7X7X.X7X.XoXoXXXoXXXoXoXoXoXoXoXoXoXXXoXXXoXoXoXoXXXoXoXoXoXoXoXoXXXoXoXoX'.7X7X7X7X.X.X7X7X.X7X7X.X7X.X7XXXXX7XXXXXXX.X7XXXXXXXoXoXXXXXoX7X.X.X7X.X7X7X7X7X.X.X7X.X7X.X7XoX.XoXoXoXoXoXoXoXXXoXoXoXXXoXXXoXoXoXoXoXoXoXoXXXoXoXoXXXoXoXXXoXoX.XoXoXoXoXoXoXoXXXXXoXoXoXXXoXoXoXoXoXoXoX.XoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX",
"oX.XoXoXoXoXoXoXXXoXoXoXoXoXXXoXoX.XoXoXoXoXoXXX.XoXoX.XXXoXoXoXoXoXXXoXoXoXXXoXoXoXoXXXXXoXXXoXoXXXXXoXoXXXoXoXoXoXoXoXoXoXoXXXoXXXoXXXXXXXXXXXoXoXXXoXoXXXXXoXoXXXoXXXXXoXoXoXoXoXoXoXXXoXoXoX7X7XXXXXXXXXXX7X.X7X7X.X7X.X7X.X.X.X7X.X7X.X7X.X7X.X.X7X.X.X7X.XXXXXoXXXoXoXXXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX.XXXXXoXoXoXoXoXXXoXoXXXoXXXoXoXXXXX7X7XXXXX7XXXoXXXoXoXXXoXXXoXXXoXoXXXoXXXoXoXoXoXXXoXXXoXoXXXoXXXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXXXoXoXoX7X.X7X.X.X7X7X.X.X7X7XXX7X7X.X7XXXXXXXXXXXXX7XXXoXoXXXoXoXoXoX7X7XXXXXoX7XXXXXXXXX7XXX7X7X.XXXXX.X7X7X7X7X.X.X7X7X.X7X.X.X7X7X7XoXoXXXoXoXoXoXXXoXoXXXoXXXoXoXoXoXoXoXXXXXoXoXoXoXoXoXoXoXoXoXXXoXoXXXoXXX7XXXXX7XXXXXXXXX7XXX7XXXXXXX7X7X7X7X7X7X.X7X7X.X7X7X7XXXoXoXXXoXoXXXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXXXoX7X7X'.7X.X7X7X7X.X7X.X.X7X.X7X.X7XXXXXXXXX7X7X.X7XXXoXXXoXoXoXoX7X7X7X.X'.7X.X7X.X7X7X.X7X.X7X.XoXoXoXoXXXoXXXoXoXoXXXoXoXoXoXXXoXoX.XoX.XoX.XoXoXoXXXoXoXXXoXoX.XoXoXoXXX7XoX.XoXXXoXoXXXXXoXoX.XoXoXoX.XoXoXoXoX.XoXoXoXoXXXoXoXoX.XoX.XoXoXoXoX.XoXoXoX.XoXoX",
"oX.X.XoXoX.X.XoXXXoXoXXXXXXX.XoXoX.XoXXXoXoXoX.XoXoX.XoXoX.XoXoXoXoXXXoXoXXXoXXXoXoXXXoXoXoXXXXXXXoXXXoXXXoXXXoXXXoXoXXXoXXXXXXX7XXXXXXXXX7X7XXX.XoXoXoXXXoXXXoXoXXXXXoXoXoXoXXXoXoX.XoXXXoXXXXX'.7XXX7XXX7XXXXX.X7X7X.X.X7X.X7X.X7X.X7X7X.X.X7X.X7X7X.X.X7X.X7XXXoXoXoXXXoXXXoXoXoXoXXX.XoXoXXXXXXXoXXXoXXXXXXXoXXX.XoXoX.XXXoXoXXXXXXXoXXXXXoXoXXXXXoXXXXXXXXXXXoXXXoXoXXXoXoXXXoXoXoXXXoXXXoXXXoXoXoXoXXXXXXX.XoXoXoXXXXXoXXXoX.X.XoXoXXXXXoXoXXXXXoXXXoXXXXX.X7X.X7X7X.X.X7X7X.X.X7XXX.X7X.XXXXXXX7XXXXXXXXXoXXXoXXXXXXXoXXXXXoXXXoXXXXXXXXXXX7XXXXX.X7X.X7X7X7X.X.X.X.X7X.X.X7X.X7X.X7X.X.XoXXXXXoXXXoXXXXXoXoXXXoXXXoXXXoXoXoXXXoXXXoXoXoXXXoXoXXXoXXXoXXXXXoXXXoXXXXXXX7XXXXX7XXXXXXXXX7XXX7XXXXX'.7X'.'..X7X7X.X.X7X'.7XXXoXoXXXXXXXXXXXXXoXXX.X.XoXoXoXXXoXXXoXoXXXoXXXoXoXXXoXoXXXoXXX'.'.7X7X7X7X.X7X7X.X7X7X7X7X.X7X7XXXXXXX7XXX.X7XXXXXXX7XXXoXXXoX'.'.7X7X7X7X.X.X7X'..X7X7X.X.X7XoXXXoXoXXXoXXXXX.XoXXXoXXXXXoXoX.XoX.XoXoXoXoXoXoXXXoXXXXXoXXXoXoXoXoXoXoXoXoX.XoXoXXXoXXXoXoXXXoXoX.XoXoXoX.XoX.XoX.XoXXXoXoXXX.XoXoXoXoXoX.XoX.XoX.XoXoXoX.XoX",
".XoXoX.XoXoXoX.XXXXXXXXXoXXXoXXXXXoXXXXX.XXXoXXXoX.XoXoX.XoX.XoX.X.XoX.XXXoX.XoX.X.XoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXXXXoX.X.XoXXXXXXXXX.XoXXX.X.XoX.XoX.XXXoX.XXXoXXXXX'.7XXXXXXXXXXXXX.X7X.X7X.X.X7X.X7X.X7X.X.X7X7X'.XXXXXXXX7X.X7X.XXXXXXXXXXXXXXXXX.XoX.XoXXXXXXXoXXXXXXXoX.XoXXXXXXXXXoXoX.XoXXXXXXXoXXXXXXXXXXXXXXXXXoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoX.X.XoXXXoX.XoXXXoXXXXXXXXXXXXXXXXXoX.XXXoXXXXX.X.X7X7X'.7X7X'..X7X.X.X7X.X.X7XXXXX.X7XXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXX7XXXXXXXXXXXXXXX7XXXXXXX'.7X.X7X.X7X.X7X.X.X7X.X7X.X.X7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XoX.XoXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX7X7X7X7X7X'..X.X7X.X.X7XXXXXXXoXXXXXXXXXXXXXXXoXoX.X.XoXXXXXXXXXXXoX.XoX.X.XoX.XXXXXXXXX7X7X7X.X'.7X7X'.7X.X'.7X.X'.7X.XXXXXXXXXXXXX7X.XXXXXXXXXXXXXXXXX7X7X7X.X7X.X.X7X7X7X7X.X.X7X7X'.XXoX.X.XoX.XXXXXoXXXXXXXXXXXXXXX.XoXoXoX.X.XoX.XXXXXXXXXXXXXXXXXoX.XXXXX.XXXXXoXXXXXXXXXXXXXXXXX.X.XoX.XXXXXoXXXoXXXoX.XXXXXXXXXoX.X.XoX.XoXoX.X.XoXoXoX.X.XoX.X",
"oXoX.XoXXX.XXXXXXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXXXXXXXXXXoX.XoX.XXXXXXXXXXXXXXXXXXX.XoXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXX.XXXXXXXoX.XoXXXXXXXXXXX7X7XXXXXXXXX XXXXXXXXXXX.X.X7X7X'.7X.X.X.X7X.X.X.XXXXXXX.X7X.X.XXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXoXXX.XoX.XXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXX.XXXXX.XXXXXXXXXXX.XXXXXXXXXXX7X7X'.7XXXXXXXXXXXXXXX.X7X X.X.XXXXXXXXXXX.XXXXXXXXX.XXXXX.XXXXXXXXXXXXXXXXXXXXX.X.X7X7X.X.XXXXX7X.X.X.X7X.X.X X7X'.7X.X7X7X'.7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XoXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X7X7X.XXX7X7X.X7X'.7X.X.X7X7X'..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XoX.XXXXXXXXXXXXXXXXXXX.XXX.X.X.X.X7X.X7X7X.X.X.X.X7X'.7X.X.X.XXXXXXXXXXX7X.XXXXXXXXXXXXX|..X7X.X7X.X7X.X.X.X'.7X.X.X7X7X'.7X.XXXXXXXXXXXXXXXXXXXXX.X.XXXXXXX.XoX.XoXXXXXXX.XXXXXXXXXXX.XXXXX.XXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXoX.XXXXX.XXXXXXXXXXXXX.XXXXXXXXXXXXXXXXX.XXXXXXXXX.XXXXXXX.XXXXX",
".X.X.X.XXXXXXXXXXXXXXX.XXXXX.X.X.XXXXXXXXXXX.XXXXXXXXXXX.XoX.XoXXXXX.XoXXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXXXX.XXX.XXXXXXXXXXX.XXXXXXXXXXX.XoXXXXXoX.XXXXX.XoX.XXXoX.XXXXX7X'.XXXXXXXX7X XXXXXXXXX.X7X.X.X7X.X'.7XXXXX.X7X.X7X'.XX.X7X.X7XXXXXXXXXXXXXXXXXXXXX.XXXXXXXoX.XXXXXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XoX.XoXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXXoXXXXXXXXXXXXXXXXXXXXXXX.X.X7X.XXXXXXXXX.XXXXX7X.X.X7X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXX7X.X.X.X7X.X.X|..X.X7X7XXX.X7X7X7X7X'.7X.X.X7X.XXXXXXX.XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXX.X.X.X.X X.X.X.X.X7X.X7X7X'..X7XXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX7X7X.X.X.X.X X.X'.7X.X7X7X.X'.7XXXXXXXXXXXXX.X.XXXXXXXXXXXXX.X7X.X.X.X.X.X X7X7X7X.X7X.X.X.X7X.XXXoXXXXXXXXXXXXXXXXXXXoX.XXXXXXXoX.XoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXX.XoXXXXX",
"XXXXoX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.X.XXX.XXXXX.XXXXX.XXXXXXX.XXXXX.XXXXXXX.XXXXXXX.XXX.XXXXXXX.XXXXX.XXXXX.X.XXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XXXXXXXXX.XXX.XXXXX.XXXXX.X.XoX.X.XXXXX7X'.'.7X.X7X'.7X7X.XXX X.X.X.X.X7X'.7X.XXXXXXXXXXXXX7XXX X.X.X.XXXXX.XXXXXXXXXXXXXXX.X.XoX.X.XoX.XXXXX.XoX.XXX.X.XXXXXXXXXXXXXXX.XXX.XXXXXXX.XXXXXXXXXXX.XXX.XXX.XXX.XoXoX.XXX.X.XXXXXXX.XXXXX.XXXXXXXXX.XXX.XXX.XXXXXXXXX.XXXXXXX.XXXXXXX.X.XXXXXXXXXXXXXXXXX.X7X'.'.7XXX.X.XXX X7X XXX.X7X7X.X.XXXXX.X.XXXXX.XXXXX.XXXXXXXXXXXXXXX.XXXXX.X.XXX7X.X.X.X'..X7X.X.X.X.X.X X.X7X X'..X7X.XXXXX'.7XXXXXXX.X.XXXXXXXXX.XXXXX.XXXXX.X.XXX.XXX.XXXXX.XXXXX.XXXXX.XXXXXXXXX.XXXXX.X.XXX.X|..X.X.X.XXXXX.X7X.X7X.X7X.X7X7X.X.X'.XXXX7X'.XXXXXXXXXX.XXXXX.X.XXX.X.XXXXX.X.XXXXXoX.XXX.XXXXX.XXX.X.X.XXXXX.X.XXX X7X X.X7X7X7X'..X.X7X7X.XXXXXXXXX X7X X7X.XXXXX.X.XXX.X.X.X.X.X7X.X.X.X.X'..X7X.X'.7X'.7XXX.XXXXX.XXXXX.X.XXXXX.X.XXXXX.XXXXX.X.XXXXX.XXXXXXX.XXXXXXXXXXXXX.XXX.X.XXX.XXXXXXX.XXXXXXXXX.X.XXXXXXX.XXX.XXXXX.XXXXX.XXXXX.XXX.XXXXXXXXXXXXXXX.XoXXXXX.XXXXX",
".XoX.X.X.XXX.X.X.XXX.X.XXX.X.X.X.X.XXX.X.XXX.XXXXXXX.X.X.X.X.X.XXX.X.X.XXX.XXXXX.XXX.X.XXX.X.XXXXX.X.XXX.XXX.X.XXX.X.XXXXXXX.XXX.XXX.XXX.X.X.XXXXX.X.XXX.XXX.X.X.XXX.XoX.X.XXX.XXX.X.X.X.XXX.XoX.X7X'.7X XXX7X.X.X XXXXX7X.X.X7X.X7X.X.X.XXX.X.X XXX XXX7X.X.X7X.X.XXX.X.XXX.X.X.X.XXX.X.XXX.X.XoX.X.X.X.XXX.X.XXXXX.X.XXX.X.X.X.XXXXX.X.X.XXX.X.XXX.X.X.XXXXX.XXX.X.XoX.X.X.XXXXX.X.X.X.XXX.XXX.XXX.X.X.XXXXX.X.XXX.XXX.XXX.XXX.XXX.XXX.XXXXX.X.XXX.X.XXX.X.XXX.X7X.X.X.XXXXX.X.X.X XXXXX.X XXXXX.XXXXXXXXX.XXX.X.XXX.X.XXX.X.X.XXXXX.X.XXXXX.X.X.X.X7X7X.X'.7X7X.X.X.X7X.X.XXX7X X'.7XXXXX.X.X.XXX.XXXXX.X.X.X.XXX.X.XXX.XXX.X.XXXXX.XXXXX.XXX.X.XXX.XXXXX.XXXXX.XXX.X.XXXXX.X.X7X.X.XXXXX.XXX7X'..X.X.X.X.X X'.7X.X7XXXXX X7X.XXX.X.X.XXXXX.XXXXXXX.XXXXXXX.XXX.X.X.XXXXX.X.XXXXXXX.XXXXX.XXX.X.X7X.X.X.X X7X.X.X7X.X.X'.7X.XXX.X.X.X.X.X.X.XXX.X.XXXXX.X.X7X.X7X.X.X.X7X.X7X7X.X'.7X7X.X.X.XXX.X.X.X.XXXXXXXXX.XXX.XXX.XXXXX.X.XXX.X.XXX.XXX.X.XXX.X.XXX.X.X.XXX.XXXXX.XXX.X.X.XXX.X.XXX.XXX.XoX.XXXXX.XXX.X.X.X.X.XXX.X.XXX.XXX.XXX.X.X.XXX.XXX.X.XXXXX.XXX",
".X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.XXX.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.X7X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.X.X.X.X.X.XXX.XXX.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X'.7X.X.X.X.X.X.X.X.X.X.X X7X X.X.X.XXX.X.X.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.X7X.X.X.X7X.X.X.X.X.X.X.X7X.X.X.X.X'.7X XXX.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X XXX.X.X.X.X.X.X.XXX.X.XXX.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X X7X.X.XXX7X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.XXX",
".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X XXX.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX'. XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X.X.X.X.X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X",
".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.XXX.X.X.X.X.X7X.X.X.X.X.X7X.X7X.X.X.X.X.X.X.X.X.X7X.X.X.X7XXX.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X7X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X XXX.X.X7X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X",
".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}..X.X}..X.X.X.X.X'.'.7X.X.X.X'..X'.'..X.X.X.X'..X.X.X'..X.X.X'. X XXX X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X.X}..X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X X.X.X.X.X.X.X.X.X'.'.7X.X.X.X'.XX XXX X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X XXX.X.X.X.X.X.X X.X.X X X.X.X.X.X.X.X X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X X.X}..X.X X.X.X.X.X.X.X.X'..X.X.X.X'..X.X.X.X X.X.X.X.X.X.X.X X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.XXX.X X XXX.X'..X.X.X.X.X.X X.X.X.X.X.XXX'..X.X.X.X.X.X.X'.'..X.X.X X.X.X.X X X.X.X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X X.X.X X.X.X.X X.X",
" X.X X.X X.X.X X X.X.X}.}..X.X.X.X X X.X.X.X X.X.X.X.X.X.X.X}..X.X X.X X.X.X X.X.X.X X.X X.X.X X.X X.X X X.X X.X.X X.X X.X.X X.X.X}..X}..X.X.X.X X.X}..X.X X.X.X X.X.X.X}.}..X.X.X.X.X}..X.X.X.X X.X.X X.X X X.X X.X.X X X.X.X.X.X.X X.X X.X X.X X.X.X X X.X.X X.X X X.X.X.X X.X X.X.X X.X X XXX.X.X X.X X.X X.X.X X X.X}..X.X.X X.X.X X.X.X X X X.X X.X.X X.X X.X.X X.X.X X.X X.X X.X.X X.X X.X X.X X.X.X X.X X.X.X X.X.X X.X.X X X X.X X.X.X X X.X X.X.X X.X X.X.X X.X X.X X.X X.X.X X X.X.X X X.X.X X.X X.X.X.X.X X.X X.X X X X.X X.X.X.X X.X X.X.X.X}.}..X.X.X X.X X.X X.X.X X.X X.X X.X X.X.X.X X X.X X.X.X X.X X.X X X.X X.X.X X.X X.X.X X.X X.X X.X X.X.X.X.X X}. X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X X.X.X X.X X.X.X X.X.X X.X.X X X X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X.X.X.X.X.X.X.X.X.X X X X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X.X}.}..X.X.X.X.X.X}..X.X X.X X.X X.X.X X.X X.X.X}..X.X.X.X}..X X.X.X X.X X.X.X X.X.X X.X X X.X X.X.X X.X X.X.X X.X.X.X.X X X.X X.X.X X X X.X X.X.X X.X X.X.X X X X.X X X.X X.X X.X.X X.X.X X.X",
" X X X X X X X X X X.X.X.X.X}..X X.X X X X X X X X.X}.}.}.}..X.X X X X X X X X X X X X X X X X X}..X X X.X X X X X X X X X X X X.X}..X X.X}..X}. X X X.X X X X X.X}.}..X.X.X.X}.}..X}..X.X}.}..X X X X.X X.X X X X X X.X X.X}.}. X X X X X X X X X X X X X X X X X.X X X X X X X X X X.X X X X X X X X X X X X X X.X X X.X.X}.}. X X X X X X.X X.X X X X X X X X X X X X X X X X.X X X X X X X X.X X X X X X X X X X X X X X X X.X X.X X X X X X.X X X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X X X X X X X X X X.X}.}..X.X.X.X}. X.X X X X X X X X X X X.X X X X X X.X X X X X X X X X.X X.X X X X X X X X X X.X X X X X X X X X.X X.X.X.X X X X X X X X}..X.X}.}. X X X X X X X X X X X X X X X X X X X X X X X.X X.X X X X X X X X X X X X.X X X X X X X X X X.X'..X'.'..X.X'. X.X X.X X X X X X X X X X X X X.X X X X X X X X}..X.X.X.X}.}..X}..X X.X X X X X.X X X X X X X X.X}..X}. X X.X.X X X X.X X X X X X X X.X X.X X X X X X.X X X X X X X X X X.X X X X X X.X X.X X X X X X X X X X.X X.X X X.X X X X X X X X X X X X",
".X X.X X X.X X.X X.X}..X}..X}.}. X X X X X X.X X X X}..X.X.X.X}. X X.X X X X X X.X X X.X X X X.X X.X.X X X X X X X X.X X X X X X.X.X.X}..X X X X.X X X X.X X X.X X X X X.X.X.X}.}..X}..X.X}..X}. X X X X X X X X X.X X X X X.X.X X X X X.X X X X X.X X.X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X.X X X X.X.X X X.X X X X X X X X X X X X.X X X X X X X X X X X X X X.X X X X X X X X X X.X X X X X X X X X X X X X X X X X.X X X X X X X.X X X X X X.X X X X X.X X.X X X X X X X X X X X X X X X X X X.X X X.X X X X.X X X.X X X X X.X.X.X}. X X X X.X X X X.X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X.X X X X X X X X X X.X X X.X X.X}..X}..X}..X X X X X X X.X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X.X X X X X.X.X'..X.X.X.X'. X X X X.X X X X.X X X X X X X X X X X X.X X X X.X X X X.X.X.X.X}. X X}. X}. X X X.X X.X.X X X X.X.X.X}.}.}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X.X X.X X X.X X X.X X X.X.X X X X X X X X.X X X X X X",
" X X X}. X X X X X X X X.X}. X X X X X X X X X X X X X X X X.X}. X X X X X X X X X X}. X X X X X X X}. X X X X X X X X X X X X X}..X}..X X X X X X X X X X X}. X}..X}..X}.}..X}..X}..X}. X X X X X X X X X X X X X}. X X X X}..X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}..X}.}..X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}. X}..X}..X}.}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}. X X X X X X X.X}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X'..X.X.X.X'..X.X X X X X X X X X X X X X X X X X X X X X X X X X}..X}..X}.}.}.}..X X X.X X X X X}. X X}.}. X X X}..X}..X.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}..X}.}. X X}. X X X}. X X X X X X X X X X X X X",
"}. X}. X}. X}.}. X X X X X X}. X}. X X}.}. X X}. X X}. X}.}.}..X X X X X X X X}. X X}. X}. X X X}. X}..X}.}.}. X X X X X X X}. X}.}.}.}.'. X X X X'.}..X}.}.}. X X X}. X}.}.}..X.X}.}..X X X X X X X X}. X}. X}.}. X X}.}.}. X}. X X X}.}. X}.}. X X}. X X}. X X X X}. X X X X X X}. X X X}. X}. X X}. X X X X X}.}. X X X}..X}.}. X X}. X X}. X}. X X X}. X X}. X X X}. X X X X X}. X X X X X X X X}. X}.}.}. X X X X}. X X X X}. X}. X X X}. X}. X X}. X X X X X X X}.}. X}.}. X X}. X X}. X X X}. X}. X}. X}. X X X}. X}. X}. X'.}..X}.}.}. X X X}. X}.}.}..X X}. X}. X X X X X}. X}. X X X}. X X X X}. X}. X X X X X X X X}. X X}. X X}. X X X X X X X}.}. X X X}.}.}.}. X}. X}. X X}..X}.}. X}. X X}.}.}. X X}. X}. X X X X X X X}. X}. X X X X}. X X X X X X X}. X X X X X X X X X}. X X X X X X X'..X'..X}. X}. X X X X X}. X X}. X X X X X X}. X X X}. X}. X}. X X X X X X X.X}.}..X}. X}. X}. X}. X X}..X}.}.}. X}. X X X X X}. X}. X}. X X X}. X}. X X X X X}. X}. X}. X X X}. X}. X X X X X X X X}. X}. X}..X}. X X X}. X}..X}.}.}. X X X X X X}. X}.",
"}. X X}. X X X X'. X}.}.}. X}. X X}.}. X X}.}. X}. X}.}. X}.}.}.}.}.}.}. X}. X}.}. X X}.}. X}.}.}.}. X}..X}. X X}.}.}.}. X}.}. X}. X}..X X X X'. X X}.}.}.}. X X}.}. X X}..X}. X}.}. X}.}.}.}. X X}. X}. X}.}. X X}. X}..X}.}. X X}.}. X X X X X}. X X}.}. X X}. X}.}. X}.}.}.}. X X X}. X}.}. X}. X}.}.}.}.}.}.}. X}.}. X}.}.}. X X}. X X}. X}. X}.}.}. X}. X X X}.}. X X}.}. X X X}.}.}.}.}.}.}. X X}. X.X}. X X}. X}.}.}.}. X X X}. X X}.}. X X}.}. X}.}.}.}. X}.}. X X X X X}. X X}.}. X}. X X X X X X}.}. X X X X}. X}.}. X X X}.}.}.}. X X}.}. X X}..X}. X X}.}. X}.}.}.}.}. X X}. X}.}. X}. X}. X}.}. X}.}.}.}.}. X}.}. X}. X X}.}. X}.}.}.}.}.}. X}. X X X}. X}..X}. X}.}. X X X}.}..X}.}. X X}..X}.}. X X X X}.}.}.}. X X}. X}.}. X}. X}.}. X}.}.}.}.}.}. X}. X}.}.}.}.}.}.}. X X}.}. X}.}.}. X.X'..X'. X X X}.}.}.}.}. X}. X}.}.}.}. X}.}. X X}. X X}. X X X}.}.}.}.}. X}.}.}.}. X X X X X}. X X}.}. X}.}.}..X}. X}.}. X}.}. X X}.}. X X}. X}. X}.}.}. X}. X}. X}.}. X X}.}. X X}.}.}.}.}.}.}.}. X X}.}..X X}.}. X}.}.}.}. X}.}. X X}.}.}.}.}. X X X X",
"}. X X X X}.}.}.}.}. X}. X}. X}. X X X X X X X}.}.}. X}.}. X X X X}.}. X X}.}. X X}.}. X X}.}.}. X}..X}.}. X}. X X}. X}.}. X X}. X}. X X X X X X X}. X}..X}.}.}. X}. X}.}.}. X}.}.}.}. X}. X X X X}.}. X}. X X}.}.}.}..X X}. X}. X}. X}. X}. X}. X X}.}. X X X}.}. X X}.}. X}. X}. X}. X}. X X}.}. X X}. X X X X X}..X}.}.}.}. X}. X}. X X}.}.}.}. X X}. X}. X}.}. X X X}. X X}.}.}. X X X X X}. X}.}. X}.}. X}.}. X}. X}. X}. X}. X X}.}. X X}. X X X X X}. X}. X}. X}. X}. X}. X X}.}. X X X}. X X}. X X}. X}. X}.}. X X}.}. X X}. X}..X}.}.}. X}. X}.}.}. X}. X}.}. X X}.}. X}. X}. X}. X X X}. X X}. X X}. X}. X}. X}. X X}. X}.}. X X}. X}. X}. X X X X}.}.}. X}. X}.}. X X X}. X X X X}.}.}. X.X}.}.}. X}. X X}. X}. X X}.}. X X X X X X}. X}. X X X X X}. X}.}. X X}.}. X X}. X}. X X}.}.}. X X X'. X.X'. X}.}.}.}..X}. X}. X}. X X}. X X}. X X}.}. X X}.}.}.}.}.}. X}. X}. X}.}.}. X}.}.}.}. X}.}. X X X}.}.}. X X}. X X X}.}. X X}.}. X}. X}. X}.}.}.}. X X}. X X}. X}.}. X X}. X}. X}.}. X}. X}. X}.}. X}.}. X X}. X}. X}..X}. X X}. X X}. X}. X X}. X",
"}.}.}. X}. X}.}.}.}.}.}.}. X'. X}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.'. X}. X X}.}.}.}.}.}.}. X X X}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.}.}. X}.}. X}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}..X}.}.}.}.}. X}.}. X}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}. X X X}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}. X X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}. X}.}.}.}.}.}.}. X}.}.'. X X.X'. X}. X}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X X}.}.}.}. X}.}. X}.}.}.}.}.}. X X}.}.}.}.}.}. X X}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.",
"}.}.}.}.}.}.}.}.'. X X'. X'. X X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}. X X'. X'. X X'.}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.'.}.}.}. X X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X X}.}. X}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}..X X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}. X'.}.}.}.}.}.}.}.}.}.}.}. X}.}.}. X}.}. X X X X X}. X}.}. X X}. X X}.}.}.}.}.}.}.}.}.}.}.}. X'. X}.}.'. X}.}.'. X}.}. X'.}.}.}.}.}.}.}.}.}.}.}.}.}. X'. X X'. X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X'. X'.}.}.}.}.'.}.}.}.}.}.`.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.",
"}.}.}.}.'.}.}.}. X'.'. X'. X'. X}.}.'.}.}.}.}.'.'. X'.}.'.}. X'.}.}.}.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.'. X X'. X'. X'.}.}.}.'.'.}.}.}.}.}.}.}. X'.'. X}.}. X'.'. X X'.}.}.}.}.}.'.}.}. X'.'. X}.}.'. X}.}.}.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.}.}.}.}.}.}.'.}.'.}.}.'.b.v.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.v.b.c.c.c.(.'. X'.}.}.}. X'.}.V.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.C.}.}.}.}.(.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.v.b.c.c.c.c.V.}.'.}.}.}.}.'.}.}. Xv.c.c.c.c.b.%.c.c.c.c.b.%.c.c.c.c.c.c.c.V.'.}.}.'.}.}.}.(.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.V.}.'. X'. X}.'..XP.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.b.c.V.V.V.M.C.C.C.C.L.L.L.P.(.(.).}.'.}.}.}.}.}. X}.'.}.}.'. X'. X'. X X'. X'.'. X'.'. X X}.}.}.'.}.}.}.}.`.}.}.}.'. X'. X X'. X'.'.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.'.'. X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.",
"}.}.'.}.'.}.'.}.'. X X'. X X'.'.}.}.}.}.}.}.}.}. X'. X'. X X'.}.}.}.}.}.}.}.}.}.'.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}. X'.'. X'.'. X X'.}.}.}.}.}.}.'.}.}.}.}.'. X X'. X'.'. X X'.'. X}.}.}.'.}.}.}.'.}.}.'.}.}. X}.'.}.}.}. (.'.}.}.).}.}.'.}.}.}.P. P. X'.}.}.'. X'. X}.O d X}.}.}.}.. % }.}.}.}.'.}.}.}.'.(. V }.}.}.}.}.}.}.V. . : }.}.'.'.}.}. X'.V. : 8 c N $.V.L.).'.}.'. X'.'. X'. X'. X'. X X'.}.}. X'.'.}.}.}.}.}.}.}.}.}.}.}. X'.'. X'.'. X X}.}.}.'.}.}.}.'.}.}.}.}.}.}.}.}.'. X}.'. X'.'. X}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.'.}.'.}.'.}.}.}.}.}.}.}.}.}.'.}.}.'.}.}.}.}.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.",
"}.}.}.'.}.}.}.'. X'.'. X'.'. X'.}.'.'.}.'.'.}.'.'.}.'. X'.'. X'.`.}.}.}.`.}.}.'.}.}.'.}.}.}.'.}.}.'.}.'.}.}.}.}.}.'.}.'.}.'.}.'.'.'. X'.'. X'.'.}.'.}.'.}.'.}.}.'.}.'.'. X'.'. X'. X'.'.'.'. X'.}.}.'.}.'.}.'.}.}.'.}.}.'.'.'.}.}.}.}. L.}.}.}.}.}.'.}.}.'.}.C.. P.'.}.'.}.}.'.}.'.}.+ 8 }.}.}.}.}.6 (.}.'.}.'.}.'.}.}.V. b.'.}.}.'.'.}.}.V. : }.}.'.}.}.'.}.'.M. 6 b.(.'. X'.'.'.}.'.'. X'.'. X}.'.'.}.}.'.}.'.}.}.}.}.`.}.}.`.'. X'.'.'. X'.'.}.'.}.'.}.'.}.}.'.'.}.}.'.}.'.}. X'.'. X'. X'.'.'.}.'.}.}.'.}.}.}.'.}.}.}.}.`.}.}.'.'.}.}.'.}.'.}.'.}.}.}.}.}.}.`.}.}.}.}.'.}.}.}.}.'.}.'.}.'.}.}.'.}.'.}.}.}.'.}.}.}.'.}.'.}.'.",
"}.'.}.'.'.'.}.'. X'.'.'.'.'.'. X'.}.'.'.'.'.'.}.'.'.}.'.}.'.}.'.}.'.}.'.}.'.'.}.'.'.}.'.}.'.}.'.'.}.'.}.}.'.'.'.}.'.}.'.`.}.}.'.'.'.'.'.'. X'.'.'.}.'.}.'.'.}.'.'.}.'.}.'.'.}.'.'.'. X'.'.'. X'.'.}.'.'.'.}.'.'.}.'.'.}.'.'.'.'.}.'.}. v.'.}.'.'.}.'.'.}.'.}.c. P.'.'.}.'.'.}.}.'.'.# 6 '.}.}.}.`.Z C.'.}.'.'.'.'.}.'.Z L.}.}.'.'.}.'.}.N. : }.'.}.'.}.'.}.'.M. c P. X'.'. X'.'.'.'.'.'.'. X'.'.'.}.'.}.'.}.'.}.}.'.}.`.'.'.'. X'. X'.}.'.}.'.'.}.'.}.'.}.'.'.}.'.}.'.'.'.'.'. X'.'.'. X`.}.}.}.'.}.'.}.}.'.}.'.}.'.'.}.'.}.'.}.'.}.'.}.}.'.'.'.'.}.}.'.}.'.}.'.'.}.}.'.'.'.}.'.}.'.}.'.'.}.'.}.'.'.}.}.'.}.'.}.`.}.}.'.",
"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.}.).'.'.'.}.'.'.'.'.}.`.'.'.'.'.'. X'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.}.'.'.'.'.}. Z '.'.'.'.'.'.'.'.'.}.Z X P.'.'.'.'.'.'.'.'.'.X a '.'.`.}.}.B. Z '.'.'.'.'.'.'.'.c . '.'.'.'.'.'.'.}.V. : }.'.'.'.'.'.'.'.M. X Z '.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.}.`.`.'.'.}.`.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.",
"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.`.}.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`. c '.'.'.'.'.'.'.'.'.'.b L.'.'.'.'.'.'.'.'.'.+ 6 '.'.'.'.`.P. b '.'.'.'.'.'.'.).# 6 '.`.}.'.'.'.'.}.V. : '.'.'.'.'.'.'.'.M. c (.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.`.}.`.}.`.}.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.",
"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}. 2 '.'.'.'.'.'.'.'.'.'.8 X P.'.'.'.'.'.'.'.'.'.+ 6 '.'.'.'.}.}.% % '.'.'.'.'.'.'.(. V '.'.`.'.'.'.'.}.V. : '.'.'.'.'.'.'.'.M. 6 ).'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.}.`.}.`.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.).'.'.'.'.'.'.'.'.'.'.'.'.'.",
"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.`.}.}.`.`.}.`.}.}.`.}.}.`.}.`.}.`.`.}.`.}.`.}.}.`.`.`.}.`.`.}.`.}.`.}.}.`.}.}.`.`.`.}.`.}.`.}.'.'.'.'.`.'.'.`.}.}.`.'.}.`.}.}.}.`.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.`.}.`.}.`. . '.'.}.`.}.}.`.`.'.).$ P.'.'.'.'.`.'.'.'.`.+ 8 }.'.}.`.}.}.d (.'.'.'.'.'.'.B. v.'.`.}.'.'.'.`.'.V. : }.`.'.}.`.`.`.}.M. d '.}.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.`.`.}.`.}.`.}.}.`.`.}.'.`.`.}.`.}.`.}.}.`.`.`.}.`.`.}.`.}.`.}.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.`.'.'.'.'.",
"`.'.'.`.'.'.`.'.`.'.'.'.`.'.`.'.'.'.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.}.`.`.}.`.`.`.`.`.}.}.`.}.`.`.`.`.`.`.`.`.`.`.}.`.}.`.`.`.`.`.`.'.`.'.'.`.'.'.`.`.'.`.`.'.`.`.`.`.}.`.`.`.'.`.`.'.`.`.`.'.`.`.'.'.'.'.`.'.`.'.`.'.`.'.`.'.`.`.}.`.`. P.).`.'.`.`.`.'.'.). P.`.'.`.'.`.'.'.`.}.+ 6 `.'.`.`.`.`.$. C.'.`.'.`.'.`.Z P.'.`.}.'.'.'.'.`.V. : '.'.`.`.}.}.`.}.:. $.}.`.'.`.`.'.'.'.'.'.'.`.'.'.`.'.'.'.`.'.`.'.'.`.'.'.`.'.'._.'.`.'.'.'.`.'.}.}.`.`.}.`.`.'.`.`.}.`.`.}.`.`.`.`.`.`.`.}.}.`.}.`.}.`.`.`.`.`.'.'.`.'.`.`.'.'.`.'.'.`.`.'.`.'.`.`.'.'.`.'.`.'.'.`.'.'.`.`.'.'.`.'.'.`.'.'.'.`.'.`.'.'.'.`.'.'.",
"'.`.`.'.`.`.`.`.`.'._._.`.`.`.'.`.`.'.`.`.'.`.`.`.`.`.`.`.}.`.`.`.`.}.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'.`.'.`.`.`.'.`.'.`.'.`.'.`.`.`.`.'.`.'.`.'.'.`.`.`.}.`.'.`. C.'.`.`.`.`.`.}.`.P. P.'.`.`.`.`.`.'.'.`.+ 6 '.`.`.}.`.`.C. $.'.'.'.`.`.'.d O `.'.`.`.`.`.`.`.'.B. : `.`.`.`.`.`.}.`.M. C.`.'.`.'.'.`.`.'.'.`.`.'.`.`.`.`.'.`.`.`.'.`.`.`.`.`.'.`.`.`.`.'.'._._.'.`.`.}.`.`.`.`.`.`.`.`.`.`.'.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.'.`.'.'.`.`.`.'.`.`.'.`.`.`.`.'.'.`.`.'.'.`.`.`.'.`.'.`.`.`.`.`.`.`.'.`.`.'.`.`.`.`.`.'.`.`.",
"`.`.'.`.'.`.'.`.'.`.'.'.`.}.`.`.'.`.`.`.`.`.`.}.`.`.}.`.`.'.`.`.`.`.`.`.`.`.`.`.}.`.`.}.`.`.}.`.`.`.}.`.`.`.`.}.`.`.}.`.`.`.}.`.`.'.`.`.`.'.'.`.`.`.}.`.'.`.`.`.}.`.`.'.`.`.`.`.`.'.`.'.`.`.'.`.`.`.`.'.'.`.`.`.`.`.`.`.}.`.`.`.`.'.`. %.}.`.'.}.`.`.`.`.C. P.`.`.'.'.'.`.`.`.`.+ a '.`.`.`.`.`.(. b '.'.`.'.'.).O 6 `.`.`.'.`.'.'.`.'.B. : `.`.'.'.`.`.`.`.:. 8 `.`.`.'.`.'.`.`.`.`.'.`.`.'.'.`.`.`.'.`.`.`.`.`.'.`.`.'.'.'.`.`.`.'.'.'.`.`.`.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.}.`.`.`.`.`.`.}.`.`.`.`.}.'.`.`.`.`.`.'.`.`.`.`.'.`.`.'.`.`.`.`.`.'.`.`.`.'.`.`.`.'.`.'.`.'.'.`.'.`.'.`.`.`.'.'.`.'.`.`.'.",
"`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`. V `.`.`.`.`.`.`.`.%. P.`.`.`.`.`.`.`.`.`.+ 6 `.`.`.`.`.`.'.2 : _.`.`.`.`.P. C `.`.`.`.'._.'._._.N. : `._.'._.'.`.`.`.M. C.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'._.'._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.",
"`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`. d `.`.`.`.`.`.`.).Z P.`.`.`.`.`.`.`.`.).+ 6 `.`.`.`.`.`._.b (.`.`.`.`.M. M.`.`.`.`._.'._.'.`.B. : `.`.`.`.`.`.`.`.:. b `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._._.'.`.`._.'.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.",
"`.`._._.`.`._._._.`._.`.`._._.`.`._.`.`.`.`.`.`.`.`.`._.`.`.`.`._.`.`._._.`.`._.`.`._.`.`._.`.`.`.`._._.`.`._._._.`._.`.`.`.`._.`._.`._._.`.`.`.`.`.`.`.`._.`.`.`.`.`._._.`.`._.`.`.`.`.`._._.`.`.`.`.`._.`.`.`.`.^.`.`.`.`.`.`.`.`.`. : _.`._.`.`.`.`.`.b L.`._._.`._.`.`.`.`.+ 6 `.`._._.`.`.`.%. C.`._._.`.C P._.`.`.`._.`._._._.B. : `._.`.'._.`._.`.:. ~._.`.`.`._.`._._.`._.`._._.`._.`.`.`.`._._.`._.`.`.`._._.`._._._._._.`._.`.`.`._.^.`.`.`.`.`.`.`.`.`.`.`.`._.`.`._.`._.`.`.`.`._.`.`.`.`.`.`.`._._.`.`.`.`.`.`.`.`.`.`._.`.`._.`.`.`._.`.`._.`._._.`.`._.`.`._.`.`._._.`._.`.`._._.`.",
"_.`.`.`.`._.`.`.`._.`.`._.`._.`._.`._._.`._.^.`.`.`._.`.`._.^.`.`._.`.`.`.`._.`._._.`._._.`._._._.`.`.`.`._.`.`._.`.`.`._._.`.`.`._.`.`._.`._.`.`.`.`.^.`.`.`._.`.^.`.`.`.`._.`._._.`.`.`._.`.`.`._._.`.`._._.`.`.`.`.`.^._.`._.`.`.`. _.`._.`._.^.`.`.4 P.`._.`.`._.`._.`.`.+ 6 `.`.`.`._.`._.L. $.`._.`.`.6 + _.`._._.`._.`.'._.`.B. : `.'._._.`._.`._.M. v.`.`._.`.`._.`.`._.`._.`.`._.`.`.`.`.`._.`.`._.`._.`.`.`._.`._.'.'._.`.`.`.`.`.`.`.`._.`.`.`._.`._.`.`._._.`._.`.`._.`._._.`._.`.`._._.`._._.`.`.`.`.`._._.`.`._._.`.`.`.`._.`.`._._.`.`._.`.`._.`.`._.`.`._.`._._.`.`._.`.`._.`._.`.",
"`.`._._._.`.`._._._.`._._.`._._.`._._.`.^.`.`.`.^.`._.`._.`._.`._._._.`._.`._.`.`._.`._.`._._.`.`._.`._._.`._._.`._._.`._.`._.`.`._.`._.`._._.`.`._._.`._._._.`._.`.^.`.`._.`._._._.`._.`._.`._._.`._.`._._.`._.`.^._.`._._.`._.`._.`. K.`.`._.`._.`.`.+ K.`._._.`._._.`._.`.+ 6 _._.`._.`._._.~.. b `._.`._.. d _.`.`.`._._._.`._.`.N. : _._._._._.^.`.`.M. N _._._.`._._.`._.`._._.`._.`._._.`._._._.`._.`._.`._.`._.`._._.`._.`.^.`._._._.`._.`.`._.`.`.^.`.^.`._.`._._.`._.`._._._._.`._.`._._._.`._.`._.`._._._._.`._._._.`._._._.`._._.`._._._.`._.`._.`._._._.`._._.`._.`._._._.`._._._.`._.",
"_._._._._._._._._._._._._._._._._._._._.^.`.^.`.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.`.^.`._.^.`._._._._._._._._._._._._._._._._._.`._.`.`.^._._._._._._._. B.^.`._._._._.~. K._._._._._._._._._.O d _._._._._._._._.8 : _._.`.K. Z _.^.`.^.`._.`._._._.N. : _._._._._.`.`.^.:. X + : _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.^._._._._._._._._.^.`._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.",
"_._._._._._._._._._._._._._._._._._._.`.`.^.`._.^.`._._._._._._._._._._._._._._._.^._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.^.^.`.^._._.`._._._._._._._._._._._._._._._._._.^.^.^.`.`._._._._._._.`. $.`._._.^.^.`.K. P.^.`._._._._._._._.O 6 _._._._._._._._.V ~._._.:. N._.`.^.^._._._._._._.N. : _._._._._.`.^.`.>. N._._.K.%.2 ).`._._._._._._._._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.^._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.",
"_._._._._._._._._._._._._._._._._._._.^.^.`.^.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.^._._._._._._._._._._._._.^.`.`.^.`._.^.^._._._._._._._._._._._._._._._._._.`.`._.^.`.^._._._._._._. N _._.^.`.`.^.B. K._.`.^.`._._._._._.O 6 _._._._._._._._.:. C._.`.V P._.^.`.`._._._._._._.N. : `._._._._.^.`.^.M. N._._.`.`.~.b K.~._._._._._._._._._.^.^.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.",
"^._._._._._.^._._._._._._._._._.`.^.`.`.^.`.^._.^._._._._._._._._._.^._.^._._._._.^._._.^._._._.^._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._.^._._.`.^._._.`.`.^._._.^._._.^._._._._._._._._._._._._._.^._._._._.^._._._. 6 ^._.`.`.^._.%. K._._._._._._.^._._.O 6 ^.`._._.^._._._.P. $._._.5 $ `.^.`.^._._._.^._._._.N. 5 b b b b b b b b b b b b b b b C ^._._._._._._._.:. N.~._.^._._.~.+ >._._._.^._._.^._._.^._._._._.^._._._.^._._.^._._._._._._._._._._.^._._.^._.^._._.^.`.^._._.^.`.^._.^._._._._._.^._._._._._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._.^._._.^._._._.^._._._._._.",
"_.^.^.^._.^._.^.^.^._.^.^._.^.^.^.^.^.^.^.^._._._.^.^.^._.^.^.^.^.^._._._.^._.^._._.^._._._.^._._.^._.^.^._.^._.^.^.^._._.^.^.^.^._.^._.^.^.^._._.^.^.^._._.^._.^._.^._.^.^._.^._._.^._._._.^.^.^.^._.^.^._.^.^.^.^._._.^._.^._.^._.^. $ _._.^.^._.^.V P.^._.^.^.^.^._._.^.# 5 ^.^._.^._.^.^.^.^.+ b _.~.O d ^._._.^.^.`.^._.^._.^.N. %._.^.^.^._._._._._._.^._._._.^._._.^.^.^._.^.^._.:. N.^._._._.^.^.V $._.^._.^._._.^._.^._._.^.^.^._._.^._._.^._._._.^._.^.^._.^.^._.^._.^.^._._.^._.^._.^._.^._._.^._._._.^._.^._._._.^.^.^._.^.^._.^.^._.^.^.^.^.^._._._.^._.^._.^.^.^.^.^._._._.^.^.^.^._.^.^.^.^._._.^._.^._._.^._.^.^.^._._._.^.^.^.",
"^._._.^.^._._.^.^._.^._._.^._.^.^.`.^._._.^.^._.^._._.^.^._._.^._.^._.^.^._.^.^.^.^.^._.^.^.^.^.^._.^.^._.^.^._._.^._.^.^._._.^._.^.^._._.^._.^.^._._.^.^.^.^._.^.^._.^.^._.^.^.^.^.^.^.^.^.^._.^.^.^.^._.^._.^.^._._.^._.^.^._._.^._. W._.^._.^.^.b K._.^._.^.^._._.^.^.+ 6 ^._.^._.^.^.^.^.^.d 2 ^.K. { ^.^.^.^._.^.^._.^._.^.N. %._._.^._.^.^.^._.^.^.^._.^.^.^._.^._.^._.^._.^._.:. N.^.^.^.^.^._.%. C ^._.^.^._.^._.^.^.^.^.^._.^.^.^.^.^.^.^._.^.^.^.^.^._.^.^._.^.^._.^._._.^.^._.^._._.^.^._.^.^._.^.^._.^.^.^.^._.^.^._.^._._.^._.^.^._._.^._.^._.^.^._.^.^.^._._.^._.^._.^.^._._.^._.^._.^.^._._.^._.^.^._.^._._.^.^._.^._.^._._.^.",
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^._.^.^._.^.^._.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. K.^.^.^.^.^.> K.^.^.^.^.^.^.^.^.^.O 6 ^.^.^._.^._.^.^.^.Z Q.%. N.^._.^.^.^.^.^.^.^.^.^.N. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. >.^.^.^.^.^.^.C. V ^.^.^.^.^.^._.^._.^.^.^._.^._.^.^._.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. :.^.^.^.^.^.+ K.^.^.^.^.^.^.^.^.^.O 6 ^.^.^.^.^.^.^.^.^.>. C.V W._.^.^.^.^.^.^.^.^.^.^.N. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. >.^.^.^.^.^.^.H. b ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. $.^.^.^.^.W. K.^.^.^.^.^.^.^.^.^.O 5 ^.^.^.^.^.^.^.^.^.W. %.4 $ ^.^.^.^.^.^.^.^.^.^.^.^.>. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. N.^.^.^.^.^.^.K. f ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
"^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.!.^.^.^.^.!.!.^.^.^.!.^.!.^.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.!.^.^.!.^.!.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^. B ^.!.^.^.H. K.^.^.!.^.!.^.^.^.^.O 5 ^.!.^.!.^.^.^.^.^.^.$ b b ^.^.!.^.^.!.^.^.^.^.^.^.>. %.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.!.!.^.^.^.^.^.^.;. >.^.^.!.^.^.^.J. d ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.!.^.^.!.^.!.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.",
"^.^.^.!.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.!.^.!.^.!.^.^.!.^.!.^.^.!.^.^.^.^.^.^.!.^.!.^.!.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.!.^.^.^.^.!.^.^.^.!.^.^.^.^. 5 ^.^.^.^.>. J.^.^.^.^.^.^.^.!.^.O 5 ^.^.^.^.^.^.^.!.^.^.b . { ^.^.^.!.^.^.^.^.!.^.^.^.>. =.!.^.^.!.^.^.^.^.!.^.!.^.!.^.^.^.^.^.^.^.^.!.^.^.:. >.^.^.^.^.^.^.K. a ^.^.!.^.^.^.!.^.!.^.!.^.!.!.^.!.^.^.^.!.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.!.^.!.^.!.^.^.!.^.!.^.^.!.^.^.^.^.^.^.!.^.!.^.!.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.!.^.^.^.^.!.^.^.^.!.^.!.^.!.^.^.^.!.^.^.^.!.^.!.^.!.^.",
"^.^.^.^.!.^.^.^.^.!.^.^.!.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.!.^.^.^.!.^.^.!.!.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.!.^.^.!.^.^.!.!.^.^.^.^.^.^.^.^.^.!.^.^.^.!.!.^.^.!.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.^.^.!.^.^.^.^.^.^.!.^. $ ^.^.!.^.%. K.^.^.^.^.^.^.!.^.^.O 5 ^.^.^.^.^.^.!.^.^.!.$. N.^.^.!.^.!.^.^.^.^.!.^.^.>. %.^.^.^.^.!.^.^.^.^.^.^.!.^.^.^.!.^.!.^.^.^.^.^.^.:. >.^.^.^.^.^.^.K. d ^.^.!.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.!.^.^.!.!.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.!.^.^.!.^.^.!.!.^.^.^.^.^.^.^.^.^.!.^.^.^.!.!.^.^.!.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.^.^.!.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.^.!.",
"!.^.!.^.^.!.^.!.^.^.!.^.^.^.!.^.^.!.^.!.^.!.!.^.^.^.!.^.!.^.!.^.^.!.^.!.^.^.^.^.^.!.!.^.!.^.^.^.!.^.!.^.^.!.!.^.^.!.^.^.^.^.^.^.^.!.!.^.^.!.^.!.^.^.!.^.^.^.^.!.^.^.^.!.!.!.^.^.^.!.!.^.^.!.!.^.!.^.!.!.^.^.^.!.^.!.^.!.!.^.!.^.!.^.^. Q.^.^.^.B K.!.^.!.^.!.^.!.^.^.O d ^.^.!.^.!.^.!.^.^.^.H. Q.^.!.^.^.^.^.!.!.^.^.!.^.>. %.^.!.^.!.^.^.!.!.^.!.^.^.!.^.!.^.!.^.!.^.!.!.^.!.;. >.^.^.!.!.^.!.J. f !.!.^.^.!.^.^.^.!.^.^.!.^.^.!.^.!.^.!.^.!.^.^.^.^.^.!.!.^.!.^.^.^.!.^.!.^.^.!.!.^.^.!.^.^.^.^.^.^.^.!.!.^.^.!.^.!.^.^.!.^.^.^.^.!.^.^.^.!.!.!.^.^.^.!.!.^.^.!.!.^.!.^.!.!.^.^.^.!.^.!.^.!.!.^.!.^.^.!.!.^.!.^.^.^.^.^.^.^.^.!.!.^.",
"^.!.^.!.!.^.!.!.^.!.!.^.!.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.!.^.!.^.!.^.^.!.!.^.!.^.!.!.^.^.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.!.!.^.^.!.!.^.^.!.^.^.!.^.!.!.^.^.!.!.^.^.!.^.!.!.!.^.^.!.!.^.^.!.^.!.^.^.!.!.^.!.^.^.!.!.^.^.!.^.^.!. J.^.!.!.d J.!.^.^.!.!.^.^.!.^.O 5 !.^.^.!.^.!.!.^.!.!.Q.. : !.^.^.!.^.!.^.^.!.^.!.^.^.>. %.^.!.^.^.!.!.^.^.^.^.!.!.^.!.^.^.!.!.^.!.^.^.!.^.;. >.!.!.^.!.^.^.J. f ^.^.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.^.^.!.!.^.!.^.!.!.^.^.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.!.!.^.^.!.!.^.^.!.^.^.!.^.!.!.^.^.!.!.^.^.!.^.!.!.!.^.^.!.!.^.^.!.^.!.^.^.!.!.^.!.^.^.!.!.^.^.!.!.!.^.^.^.^.!.!.!.^.^.!.!.^.^.!.",
"^.!.!.!.^.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.!.^.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.^.!.!.^.!.!.^.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.^.!.!.^.!.!.!.!.!.!.!. >.!.^.!.2 J.!.!.!.^.!.!.^.!.!.+ 5 !.!.^.!.!.!.^.!.!.^.!.> b !.!.^.!.!.!.!.!.!.!.^.!.!.N. %.!.!.!.!.^.^.!.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.^.!.;. >.^.!.!.^.!.!.H. b ^.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.^.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.!.^.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.^.!.!.^.!.!.^.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.^.!.!.^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.^.!.!.^.!.",
"!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.^.!.^.!.!.!.!.!.^.!.!.^.!.^.!.!.!.^.!.^.!.^.^.!.^.!.^.!.^.!.!.!.!.^.!.!.!.^.!.^.!.^.!.!.!.!.^.^.^.!.!.!.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.!.!.^.!.^.^.!.!.!.!.^.!.!.!.!.^.^.!.^.!.!.!.!.^.^.^.!.^. $.!.^.!.+ J.^.!.^.!.^.!.^.!.^.O 5 !.!.!.^.!.^.^.!.^.!.!.B ..!.^.!.^.!.^.^.!.^.!.!.^.!.>. %.!.^.!.!.^.!.^.!.^.^.!.!.!.!.^.!.!.^.!.!.^.!.^.!.;. >.^.!.!.^.!.^.C. B !.!.^.^.!.^.!.!.!.^.!.!.^.!.^.!.^.^.!.!.^.!.^.^.!.^.!.^.!.^.!.!.!.!.^.!.!.!.^.!.^.!.^.!.!.!.!.^.^.^.!.!.!.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.!.!.^.!.^.^.!.!.!.!.^.!.!.!.!.^.^.!.^.!.!.!.!.^.^.!.^.!.^.^.!.!.!.^.!.!.^.!.^.!.^.",
"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.^.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.^.!.^.!.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!. N !.!.W. : J.!.!.!.!.!.!.!.!.!.O 5 !.^.!.!.!.^.!.!.!.^.!.%. C.!.!.!.!.!.!.!.!.!.!.!.^.!.>. =.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.^.!.!.!.;. >.!.^.!.!.!.!.-. { ^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.^.!.^.!.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.",
"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^. + a !.!.H. a J.!.!.!.!.!.!.!.!.!.+ 5 !.!.!.!.!.!.!.!.!.!.!.H. Q.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.;. >.!.!.!.!.!.!.{ ;.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.",
"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. 4 $ !.!.;. B J.!.!.!.!.!.!.!.!.!.+ 5 !.!.!.!.!.!.!.!.!.!.!.!.O > !.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.;. >.E.!.!.!.!.!.f H.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.",
"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. b !.!.{ { J.!.!.!.!.!.!.!.!.!.O 5 !.!.!.!.!.!.!.!.!.!.!.!.a b !.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.=. >.!.!.!.!.!.Q.O I.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.",
"!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.E.!. B @ J.!.B # %. J.!.!.!.!.!.E.!.!.!.+ 5 !.!.E.!.!.!.!.!.E.!.!.E.C ..!.!.!.E.!.!.!.E.!.E.!.!.!.!.>. X.!.E.!.!.!.!.!.!.!.!.!.!.Q.!.!.E.!.!.!.!.E.!.!.!.=. >.!.E.^.!.!.B $ !.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.E.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.",
"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. N a -.!.a 4 .. J.!.!.!.!.!.!.!.!.Q.O 5 !.!.!.!.!.E.!.!.!.!.!.!.>. H.!.!.!.!.!.!.!.!.!.!.!.!.!.E.>. N =.=.=.%.=.=.=.=.=.=.=.=.=.=.,.!.!.E.!.!.!.!.!.!.=. >.R.K.t.{ < b !.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.E.!.!.!.!.!.!.!.!.E.",
"!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.!.!.E.!.E.!.!.!.!.E.!.E.!.E.!.!.E.!.E.!.E.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.!.!.!.E.!.!.!.!.E.!.E.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!. B b ..!.: f . J.!.E.!.E.!.E.!.E.!.O 5 E.!.E.!.!.!.E.!.E.!.!.!.J. Q.E.E.!.!.E.!.E.!.E.!.E.E.!.!.>. < !.E.!.!.!.!.E.!.!.=. =.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.!.!.!.E.!.!.!.!.E.E.!.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.!.!.E.E.!.!.!.!.E.!.E.!.E.!.!.",
"E.!.!.!.E.!.!.!.!.!.E.!.!.!.E.!.E.!.!.E.!.!.E.!.!.E.E.!.!.!.E.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.E.!.!.!.E.!.E.!.!.E.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.!.E.E.!.!.!.E.!.!.!.!.!.E. B { V !. C . J.E.!.!.!.E.!.!.!.!.+ 5 !.!.E.!.!.E.!.!.E.!.!.E.!.@ 4 E.!.!.E.!.!.E.!.!.!.!.!.E.!.E.>. < !.!.!.!.!.E.!.!.!.;. R.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.E.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.E.!.!.!.!.E.!.E.!.!.E.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.E.!.!.!.!.E.!.!.!.E.",
"!.!.E.E.!.!.E.E.E.E.!.!.E.E.!.!.!.E.!.!.E.!.!.E.E.!.!.!.E.!.E.!.!.!.E.!.!.E.E.!.!.E.!.E.!.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.!.E.!.E.!.!.E.!.E.!.!.E.!.!.E.!.E.!.E.E.!.E.!.!.E.!.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.E.E.!.!. B ;. a I. =. . i.!.!.E.E.!.!.E.E.E.O 5 E.!.!.E.!.E.E.!.E.!.!.E.!.a N !.!.E.!.!.E.!.!.E.!.E.!.!.E.!.>. < E.!.E.!.E.!.!.E.E.=. B !.E.!.!.E.!.E.!.!.E.!.E.!.!.E.!.E.E.!.!.!.E.!.!.E.E.!.!.E.!.E.!.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.E.E.!.E.!.!.E.!.E.!.!.E.!.!.E.!.E.!.E.E.!.E.!.!.E.!.!.E.!.E.!.E.!.!.!.E.E.!.!.E.E.E.E.!.!.E.E.!.!.E.!.!.E.E.!.!.E.!.E.!.E.!.E.E.!.",
"E.!.E.!.E.E.E.!.!.E.!.E.!.E.!.E.E.!.E.E.E.!.E.!.!.!.E.E.!.E.E.!.!.E.E.!.E.E.!.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.E.E.!.E.E.!.E.!.!.E.E.E.!.E.E.!.E.!.E.E.E.!.!.E.!.E.E.E.!.E.E.!.E.!.E.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.!.E.!.E.!.E. B H. ; t. C. . J.E.!.E.!.E.!.E.!.!.O 5 E.!.E.E.!.!.E.!.E.!.E.!.!.{ %.E.E.E.!.E.!.!.E.E.!.E.!.E.!.!.-. 4 !.E.!.E.E.E.E.E.!.=. ; R.E.!.E.E.!.E.E.!.E.!.E.E.E.!.!.!.E.!.E.!.E.E.!.E.E.!.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.E.E.!.E.E.E.!.!.!.E.E.E.!.E.E.!.E.!.E.E.E.!.!.E.!.E.E.E.!.E.E.!.E.!.E.E.!.E.E.E.!.E.!.E.!.E.!.!.E.!.E.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.!.!.E.!.E.",
"E.E.!.E.E.!.!.E.!.E.E.E.!.E.E.!.E.E.!.E.E.!.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.!.E.E.!.E.E.E.!.E.E.E.!.E.E.E.!.!.E.!.E.E.!.E.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.!.E.E.E.!.!.E.E.!.!.E.E.!.E.E.E.!.E.E.!.E.E.E.!.E.E.E.!. B R. =. I... J.E.E.!.E.E.E.!.E.E.O 5 !.E.E.!.E.E.!.E.E.E.!.E.E.,. t.E.!.E.E.E.E.E.E.!.E.!.E.E.E.E.-. < E.E.E.E.!.!.E.!.E.=. @ J.E.!.E.E.E.E.!.E.E.E.E.!.!.E.E.E.E.!.E.E.E.E.!.E.!.E.E.E.!.E.E.!.E.E.E.!.!.E.E.!.E.E.E.!.!.E.!.E.E.!.!.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.!.E.E.E.!.!.E.E.!.E.E.!.E.E.E.!.E.E.E.E.E.!.E.E.!.!.E.E.E.E.!.E.E.E.!.E.E.E.!.E.E.",
"E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.!.!.E.E.E.E.E.!.E.E.E.E.!.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.!.E.E.!.E.E.E.!.E.E.E.E.E.!.E.!. B T.@ N . E. . i.E.E.E.E.E.E.E.E.E.O 5 E.E.E.E.E.E.E.E.E.E.E.E.!... X.E.E.E.!.E.E.!.E.E.E.E.E.E.E.!.-. < !.E.E.E.E.E.E.E.T.=. f I.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.!.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.!.",
"E.!.!.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.!.E.E.!.E.E.E.E.E.!.!.E.E.E.E.E.!.E.E.E.E.E.!.E.!.E.E.!.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E. B E.5 % : E. . J.E.!.!.E.E.E.E.!.E.O 5 E.E.!.E.E.E.E.E.!.E.E.!.E.B N E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.-. < !.E.E.E.E.E.!.E.E.=. + f H.T.E.E.E.E.E.!.!.E.E.E.E.E.E.!.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.!.E.E.!.E.E.E.E.!.E.E.E.E.!.!.E.E.E.E.!.!.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.",
"E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E. B E.N a E... i.E.E.E.E.E.E.E.E.E.O 5 E.E.E.E.E.E.E.E.E.E.E.E.E.a $ E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.>. 4 E.E.E.E.E.E.E.E.T.=. > f C t.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.",
"E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E. l E.{ B E. . J.E.T.E.E.E.E.E.E.E.X 5 E.T.E.E.E.E.E.E.E.E.E.E.E.@ J.T.E.E.E.E.E.E.E.E.E.E.E.E.E.-. > T.E.E.E.E.E.E.E.T.=. ; B ,.R.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.",
"E.E.E.E.T.T.E.E.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.T.E.E.E.T.E.E.E.E.T.E.E.E.T.T.E.E.E.T.E.T.E.E.E.E.E.E.E.E.T.T.E.E.E.T.E.E.E.E.T.E.E.T.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E. B T.-. ..E. . i.E.E.E.E.T.T.E.E.T.# 5 T.E.E.T.T.E.E.E.E.E.E.E.I. =.T.E.E.E.E.E.E.T.E.E.E.T.E.E.-. > E.E.E.T.E.T.E.E.E.=. + B i.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.E.E.E.E.T.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.T.E.E.E.E.T.E.E.E.T.E.T.E.E.E.T.E.E.E.E.T.E.E.E.T.T.E.E.E.T.E.T.E.E.E.E.E.E.E.E.T.T.E.E.E.T.E.E.E.E.E.E.E.E.T.T.E.E.T.E.E.E.T.E.T.E.E.T.T.E.E.T.T.E.E.E.E.T.E.E.E.T.",
"T.E.T.E.E.E.E.T.T.E.E.E.T.E.E.E.T.T.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.E.Y.E.T.E.T.E.E.T.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.T.E.T.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.T.E.T.E.E.E.E.E.E.E.T.E.E.T.E.T.E.E.E.E.E. l E.i. -.T. . i.T.E.E.E.E.E.E.T.T.O 5 T.E.E.E.E.E.T.E.T.E.E.E.t. f E.E.E.T.E.T.E.E.E.T.E.E.E.T.-. 4 E.T.E.E.E.E.E.E.T.&. d i.R.T.E.T.E.T.E.E.E.T.E.E.E.T.E.T.E.T.E.E.E.E.T.E.E.Y.E.T.E.T.E.E.T.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.T.E.T.E.E.T.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.T.E.E.T.T.E.E.E.E.T.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.",
"T.T.E.E.E.E.T.E.T.E.T.T.E.E.T.T.E.T.T.E.E.T.T.E.Y.E.T.E.E.T.T.T.E.T.E.E.T.T.E.E.Y.E.E.T.E.T.E.T.T.E.T.T.E.T.T.T.E.E.T.E.T.E.T.T.E.T.E.T.T.E.T.E.T.E.T.T.E.T.T.T.E.T.E.T.T.E.T.E.T.E.T.E.E.T.E.T.E.E.T.E.T.E.T.T.E.E.E.T.T.T.E.E.T.E.T. B E.U. i.T. . i.E.E.T.E.T.E.T.E.T.# 5 T.E.T.E.E.E.E.T.T.E.T.E.X. ; U.T.T.E.T.E.T.T.E.E.T.T.E.E.-. 4 T.E.E.T.T.E.T.E.T.=. . { T.T.E.T.E.E.T.E.E.T.T.E.E.T.E.T.E.E.T.E.T.E.E.T.E.E.T.T.E.E.T.E.E.T.T.T.E.T.T.E.E.T.E.T.T.T.E.E.T.E.T.E.T.E.E.T.E.T.T.E.T.E.T.E.T.T.E.T.T.T.E.T.E.T.T.E.T.E.T.E.T.E.E.T.E.T.T.T.E.E.T.E.T.E.E.T.T.T.T.T.E.E.T.T.E.T.T.T.E.T.E.E.T.T.T.E.T.T.",
"T.E.T.T.T.T.T.T.T.E.T.T.T.T.T.E.T.T.T.E.T.T.T.E.E.T.E.Y.T.E.T.T.T.T.T.T.T.E.T.T.Y.E.T.T.E.T.T.T.T.T.T.E.T.T.E.T.T.T.T.T.T.T.T.E.T.E.T.T.T.E.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.T.T. l T.E.$ U.T. . i.T.T.T.T.T.T.T.T.T.O 5 T.T.T.T.T.T.T.T.E.T.T.T.B I.E.T.T.E.T.T.T.T.T.T.T.T.T.-. < T.T.T.E.T.T.T.T.T.=. B U.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.E.Y.T.T.E.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.E.T.T.E.T.T.T.E.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.E.T.T.T.E.E.T.T.E.T.T.E.T.",
"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.Y.E.Y.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. l T.T.a @ T.T. . i.T.T.T.T.T.T.T.T.T.O 5 Y.T.T.T.T.T.T.T.T.T.Y.E.i =.T.T.T.T.T.T.T.T.T.T.T.T.T.-. < T.T.T.T.T.T.T.T.T.+. { T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.Y.E.Y.Y.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.",
"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.E.Y.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. B T.R.l 5 T.Y. . i.T.T.T.T.T.T.T.T.T.O 5 T.T.T.T.T.T.T.T.T.T.E.Y.+ l T.T.T.T.T.T.T.T.T.T.T.T.Y.-. < T.T.T.T.T.T.T.T.T.=. ; > @ t.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.E.Y.E.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.",
"T.T.Y.T.T.T.Y.T.T.T.T.Y.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.T.Y.T.Y.E.Y.E.T.T.T.T.T.Y.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.Y.T.T.T.T.T.Y.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T. B T.T.{ f Y.T.} i.T.T.T.Y.Y.T.T.T.T.O 5 T.T.T.T.T.Y.Y.T.T.T.T.I. ; T.T.T.Y.T.T.T.T.Y.T.T.T.T.-. > T.T.T.Y.Y.T.T.Y.T.+. &.T.T.I.-.s < U.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.Y.T.Y.E.Y.E.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.Y.T.T.Y.Y.T.T.Y.",
"T.Y.T.T.Y.Y.T.Y.Y.T.Y.T.Y.T.T.T.x.T.T.T.Y.T.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.T.Y.Y.Y.Y.T.Y.Y.T.Y.T.Y.T.Y.Y.T.Y.T.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.Y.T.T.Y.T.T.T.Y.x.T.T.Y.Y.T.T.Y.Y.T.T.Y.Y.T.Y.T.T.Y.Y.T.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.T. l Y.T.*. { Y.Y. . u.T.Y.T.Y.T.T.T.Y.Y.O 1 Y.T.Y.Y.T.Y.T.T.Y.T.Y.,. I.T.x.T.T.Y.Y.Y.T.T.Y.T.Y.-. 4 Y.Y.T.Y.T.T.Y.T.Y.+. &.T.Y.Y.T.T.B &.Y.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.T.T.T.Y.Y.T.Y.T.Y.Y.T.T.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.T.Y.Y.T.Y.T.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.Y.T.T.Y.T.T.T.Y.x.T.T.Y.Y.T.T.Y.Y.T.Y.Y.Y.T.Y.T.T.Y.Y.T.T.Y.T.Y.T.T.Y.T.T.Y.Y.Y.T.Y.T.Y.T.T.T.T.T.Y.Y.T.Y.Y.T.Y.T.T.Y.T.",
"Y.T.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.T.x.T.x.T.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.Y.Y.T.T.Y. k Y.Y.i. +.Y.T.} i.Y.T.Y.Y.Y.Y.T.Y.T.O i Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.} +.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.&. < a a a d a s a a a s a a a a x Y.T.Y.Y.Y.Y.T.Y.Y.+. &.T.Y.T.Y.Y.I.O 4 Y.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.T.T.x.T.x.T.T.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.T.Y.Y.T.Y.T.Y.Y.Y.Y.T.x.x.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.",
"Y.Y.T.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.T.Y.Y.Y.Y.T.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.T.x.T.x.x.T.Y.Y.Y.Y.x.T.T.Y.Y.T.Y.Y.Y.Y.Y.T.T.Y.Y.T.Y.Y.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T. B Y.Y.Y. t.Y.Y.} i.Y.Y.Y.T.Y.Y.Y.Y.Y.O 4 Y.Y.Y.Y.T.Y.Y.T.Y.Y.Y.N B Y.Y.Y.Y.Y.Y.Y.Y.T.T.Y.T.&. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.T.=. &.Y.Y.Y.Y.Y.Y.i I.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.Y.Y.Y.Y.Y.T.T.Y.x.T.T.Y.Y.Y.Y.Y.Y.T.T.Y.x.T.x.T.T.Y.Y.T.Y.x.T.x.Y.Y.T.T.Y.T.T.T.Y.E.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.",
"Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.T.Y.x.Y.Y.Y.Y.x.T.x.T.Y.Y.T.Y.Y.Y.x.T.Y.Y.Y.Y.Y.Y.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y. k Y.Y.Y.: g.T.Y... u.Y.Y.Y.Y.Y.Y.Y.Y.Y.O 4 Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.4 > x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.&. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.Y.x.+. &.Y.Y.Y.Y.Y.Y.B t.Y.Y.Y.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.x.Y.Y.Y.Y.T.x.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.T.Y.Y.Y.Y.Y.Y.x.T.T.x.Y.Y.T.x.Y.Y.Y.T.Y.Y.x.Y.Y.Y.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.",
"Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.x.T.Y.Y.Y.Y.T.x.Y.Y.Y.Y.x.Y.Y.Y.T.x.Y.Y.T.x.Y.Y.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y. k Y.Y.Y.a O Y.Y.Y.} i.Y.Y.Y.Y.Y.z.Y.Y.Y.O 5 Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.+ I.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.*. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.x.x.=. &.Y.Y.x.Y.Y.Y.} | Y.Y.x.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.x.T.Y.x.Y.Y.T.x.x.T.x.Y.x.T.x.Y.Y.Y.Y.Y.T.x.T.x.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.",
"Y.Y.Y.Y.Y.Y.x.Y.Y.x.x.Y.Y.Y.z.Y.Y.x.Y.Y.x.Y.x.Y.Y.Y.Y.Y.x.Y.Y.x.Y.x.Y.Y.x.Y.Y.x.x.Y.x.Y.Y.Y.Y.x.x.Y.x.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.x.Y.x.x.Y.Y.T.x.x.T.x.Y.Y.x.T.x.x.x.Y.x.Y.Y.Y.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.z.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.z.Y.Y.Y.Y.Y.x. k Y.Y.x.l > Y.Y.Y.} u.Y.Y.Y.Y.Y.Y.Y.Y.Y.O 4 Y.Y.x.Y.Y.x.x.Y.x.Y.l. @.Y.Y.Y.Y.x.Y.Y.x.Y.Y.x.&. X.Y.x.Y.Y.Y.Y.Y.Y.x.Y.Y.z.Y.Y.x.x.T.x.Y.Y.x.Y.Y.x.&. +.Y.x.Y.Y.Y.Y.+. { x.x.Y.Y.T.Y.x.Y.x.Y.Y.Y.x.Y.Y.x.Y.x.Y.Y.x.Y.Y.Y.x.Y.x.Y.x.x.Y.x.Y.x.T.x.Y.x.Y.Y.Y.Y.x.Y.Y.x.T.T.x.Y.Y.Y.x.T.x.x.x.Y.Y.x.Y.Y.x.T.x.Y.Y.Y.x.Y.Y.x.x.Y.Y.Y.x.Y.x.Y.Y.Y.Y.Y.Y.Y.z.Y.Y.x.Y.Y.Y.Y.x.Y.x.Y.Y.Y.x.Y.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.",
"z.Y.z.Y.Y.z.Y.x.x.Y.x.Y.Y.Y.z.Y.x.Y.x.x.x.Y.x.x.Y.x.x.Y.x.x.x.Y.Y.x.x.x.x.x.x.Y.x.Y.x.x.Y.x.Y.x.x.T.Y.x.Y.x.x.x.Y.x.x.x.x.x.x.T.x.Y.x.x.x.x.Y.x.x.x.x.Y.x.x.x.T.Y.Y.x.x.x.x.Y.x.Y.x.x.Y.x.x.x.Y.Y.Y.z.Y.Y.Y.Y.z.z.Y.x.Y.Y.Y.z.Y.x.Y.Y. l Y.x.Y.} s x.x.Y.} u.z.Y.z.Y.Y.z.Y.z.Y.O i x.x.x.x.x.Y.x.Y.x.x.,. l x.Y.Y.Y.x.x.x.Y.x.x.x.&. X.x.Y.x.x.x.x.x.x.Y.Y.z.Y.Y.x.Y.x.x.Y.x.Y.x.x.x.Y.| &.Y.x.x.Y.x.x.*. x x.Y.x.x.x.x.Y.x.Y.x.x.x.Y.x.x.Y.x.x.x.x.Y.x.x.x.x.x.Y.x.Y.Y.x.x.x.x.T.x.x.Y.x.x.x.Y.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.T.x.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.Y.Y.x.x.Y.x.x.z.Y.z.Y.Y.Y.z.Y.Y.x.x.x.x.Y.x.Y.x.Y.x.Y.x.x.Y.x.x.x.x.Y.Y.Y.x.x.",
"Y.Y.z.Y.x.Y.x.Y.Y.x.z.Y.Y.Y.Y.Y.Y.x.x.Y.Y.x.x.Y.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.Y.x.x.Y.Y.x.x.x.x.x.x.T.x.x.x.Y.x.Y.x.Y.Y.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.x.Y.x.Y.x.x.x.Y.x.Y.x.Y.Y.x.Y.x.x.Y.x.Y.Y.x.Y.z.z.Y.Y.z.Y.z.z.Y.Y.z.Y.z.Y.z.Y.x.Y. l x.Y.x.*. B x.Y.Y.} y.Y.Y.z.Y.z.Y.Y.Y.Y.. i Y.Y.Y.x.Y.x.Y.x.x.Y.} ; < Y.Y.x.Y.Y.x.Y.x.x.x.Y.@. X.Y.x.x.x.Y.Y.x.x.Y.Y.Y.x.Y.Y.x.Y.x.x.Y.x.Y.x.Y.x.+. @.x.x.Y.Y.x.Y.t. l Y.Y.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.Y.x.x.T.x.Y.Y.x.x.Y.Y.x.x.x.x.T.x.x.Y.x.x.Y.x.Y.x.x.T.x.x.x.x.x.T.x.x.Y.x.Y.x.x.Y.x.x.x.Y.x.x.Y.x.x.x.x.x.x.x.x.Y.x.x.x.Y.z.Y.z.z.Y.Y.z.Y.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.x.Y.Y.x.x.Y.Y.x.",
"z.Y.Y.z.x.x.x.x.x.x.Y.x.z.z.Y.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.Y.Y.z.Y.Y.z.Y.Y.z.Y.Y.z.Y.Y.z.x.x.x. l x.x.x.u. } x.x.Y.} y.z.Y.Y.z.Y.z.z.Y.x.O 4 x.x.x.x.x.x.x.x.Y.x.l g O g.x.x.x.x.x.x.x.x.x.x.&. | x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.&. @.x.x.x.x.x.z.y. g Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.Y.x.Y.x.x.x.x.x.x.z.Y.Y.z.Y.Y.z.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.",
"x.x.x.x.x.x.x.x.z.x.z.Y.z.z.z.Y.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.Y.z.z.z.z.Y.Y.z.z.Y.z.Y.z.Y.Y.x.x.x. k Y.x.x.x.. *.x.x.x.} y.x.x.x.x.x.x.x.x.x.O 5 x.x.x.x.z.x.x.x.x.x.4 x i @.x.x.x.x.x.x.x.x.x.z.&. X.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.+. @.x.x.x.x.z.x.y. f x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.Y.z.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.",
"x.x.k.x.z.z.x.z.x.z.Y.z.z.Y.z.z.x.x.x.z.z.x.x.z.z.x.z.z.x.x.k.x.x.z.x.z.z.x.z.x.x.x.z.x.x.z.x.z.x.z.z.x.z.x.z.x.x.z.x.z.z.x.z.x.x.z.x.z.z.x.x.z.z.x.z.x.x.z.x.z.z.x.z.x.z.x.x.k.z.x.x.z.x.z.z.x.z.z.Y.z.Y.z.z.z.z.Y.z.z.z.z.z.z.z.x.x. k z.z.x.z.; u.x.x.x.} y.z.x.z.x.x.z.x.z.z.O 1 z.z.x.z.x.x.z.x.x.Y.O X.l l x.x.z.z.x.x.z.z.x.z.@. | x.x.x.x.z.x.x.x.z.x.z.x.z.x.z.z.x.z.x.z.z.x.z.z.+. @.x.x.z.x.x.x.u. g x.z.x.z.x.x.z.x.z.x.k.x.z.z.x.z.x.z.x.z.x.z.x.z.z.z.x.z.x.z.x.x.z.x.z.z.x.z.z.z.x.x.z.z.x.z.x.z.x.x.x.x.z.z.x.z.x.z.x.z.x.x.z.x.z.x.z.x.z.k.x.x.x.z.x.x.z.x.z.x.z.z.z.z.Y.x.x.k.x.x.z.x.z.x.z.z.x.z.x.z.x.x.z.x.z.x.z.x.z.z.x.x.z.",
"x.z.x.z.x.x.x.x.z.z.Y.z.k.Y.Y.k.x.z.z.x.x.x.x.x.x.z.x.x.x.k.z.x.z.x.x.x.x.z.z.z.z.z.x.x.z.x.x.z.x.x.z.z.x.x.x.x.z.x.x.x.x.z.x.z.x.x.x.x.x.z.z.x.x.z.x.z.z.x.x.x.x.x.x.x.z.x.x.x.x.z.x.z.x.x.x.x.z.Y.z.z.Y.z.z.Y.z.Y.Y.z.z.Y.Y.z.x.z.x. k x.x.z.x.a l.x.z.z.} y.x.z.x.z.z.x.x.x.z.O 1 x.x.z.x.z.x.x.x.x.g. *.| < x.x.x.x.z.x.x.z.x.z.@. | x.x.z.z.x.x.z.z.z.z.x.x.z.x.x.z.z.x.x.x.x.z.x.x.o. @.z.z.x.z.z.z.y. s x.z.x.x.z.z.x.z.x.k.x.x.x.x.z.z.x.x.z.x.z.x.x.z.z.x.x.x.x.z.x.z.x.x.x.z.z.x.z.x.x.z.x.z.x.x.z.x.z.z.x.z.x.x.x.x.x.z.x.z.z.z.x.z.x.z.x.z.x.x.x.k.x.x.z.x.z.x.x.z.x.k.Y.z.z.x.x.z.x.x.x.z.x.x.x.z.x.x.x.x.z.z.x.z.x.x.x.x.x.x.z.z.x.",
"x.k.x.z.z.z.z.z.z.x.z.z.Y.k.Y.z.z.x.z.z.z.z.z.z.z.z.x.k.x.x.x.z.z.z.z.z.x.z.z.z.z.x.z.z.x.z.x.z.z.x.z.z.z.z.z.z.z.z.z.z.x.z.x.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.k.x.z.x.x.k.x.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.x.z.x. k z.z.z.z.x ; z.x.z.x.} y.x.z.x.z.z.z.z.z.x.O 4 z.x.z.z.z.z.z.z.z.#. u.t. l.x.k.x.z.z.x.z.z.z.@. | z.z.x.z.z.z.x.z.z.x.z.x.z.z.z.z.z.z.z.z.x.z.z.z.+. @.x.z.z.z.z.z.u. s x.x.z.z.z.x.z.z.x.k.x.x.k.x.z.x.z.x.z.x.z.z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.x.z.z.z.z.x.z.z.x.z.z.x.z.z.x.z.z.z.z.x.z.z.z.z.x.z.x.x.z.z.x.k.x.k.x.x.z.z.z.z.z.z.x.Y.k.Y.z.k.x.z.x.z.z.z.z.z.z.x.z.z.z.z.x.z.z.z.z.z.z.z.z.k.x.z.z.",
"x.x.z.z.z.z.z.z.z.x.k.x.k.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.x.k.x.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.x.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z. g z.z.z.z.} i x.z.z.z.} y.k.z.z.x.z.z.z.z.z.O 4 z.z.z.z.z.z.z.z.x.( l.l. @.k.z.z.x.z.z.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.| @.z.z.z.z.z.z.u. a z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.x.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.x.z.z.",
"k.z.z.k.z.z.z.z.k.k.x.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.k.x.x.k.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.k.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.k.z.k.z.z.z.z.z.x.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.k.z.z. l z.z.z.x.#. g x.z.z.z.} e.z.z.z.k.z.z.z.z.z.O 1 z.z.z.z.z.z.z.z.x.g @ z.z.; x z.z.z.k.z.z.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.o. @.k.z.z.k.z.z.e. i z.z.z.z.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.k.k.x.x.k.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.k.z.z.",
"z.z.z.z.z.z.z.z.x.k.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.k.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z. k z.z.z.z.f. ( z.z.k.z.} y.z.z.z.z.z.z.z.z.z.O 1 z.z.z.z.k.z.z.z.z.1 < z.z.a 1 z.z.z.z.z.k.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.| o.z.z.z.z.z.z.y. i x.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.k.k.x.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.",
"k.z.k.z.z.k.z.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.z.k.k.x.k.z.k.z.k.k.z.k.z.z.k.z.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.z.k.z.k.z.k.z.k.z.z.z.z.z.k.z.k.z.k.z.k.z.z.k.z.z.k.z.k.k.z.k.z.z.k.k.z.z.k.z.k.k.z.k.z.k.z.z.k.z.k.k.z.k.k.k.z.k.z.k.z.z. k z.z.k.z.z. | k.z.z.k.} y.k.z.k.z.k.z.k.z.k.O i z.k.z.k.z.z.z.k.z.O s z.k.x l.z.k.z.z.z.k.k.j.@. | z.z.k.k.z.k.z.z.k.k.z.k.z.k.z.z.k.k.k.z.k.z.z.z.o. @.k.k.z.z.k.z.y. i z.k.z.k.z.k.z.k.z.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.z.k.z.z.k.z.k.z.k.z.z.k.z.k.z.z.k.z.z.z.k.k.z.k.z.k.z.k.z.k.z.k.k.k.z.k.z.z.k.k.z.k.z.z.k.z.z.k.z.k.z.z.k.z.k.z.k.z.k.z.k.k.z.k.x.z.k.x.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.k.z.k.z.k.",
"z.k.z.k.z.k.k.z.k.z.k.z.k.k.k.x.k.k.z.k.k.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.k.z.k.z.z.k.k.z.k.z.z.k.k.z.z.k.z.k.z.k.x.k.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.k.z.k.z.k.k.z.k.z.k.k.z.z.k.k.x.k.k.z.k.k.z.z.k.z.k.k.z.k.x.z.k.k.z.k.z.k.z.k.z.k. g z.k.k.k.z.> t.k.k.k.z.} e.k.z.z.k.k.z.k.z.k.O 1 k.z.k.z.k.k.z.k.f. x z.z.@. #.z.k.k.z.k.z.k.z.@. | k.z.k.z.k.k.z.k.z.k.z.k.z.k.k.x.k.z.k.z.k.z.k.z.o. @.z.k.z.z.k.k.y. 1 z.z.k.z.k.z.k.z.k.z.k.k.z.k.z.k.x.z.k.k.z.k.z.k.k.k.z.k.z.k.k.k.z.k.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.k.z.z.k.z.k.k.z.k.z.k.z.k.x.k.k.z.k.k.z.k.k.x.k.z.k.z.z.k.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.k.z.k.z.k.z.k.z.z.k.",
"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k. l k.z.k.k.k.s g.k.k.k.k.) y.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.@. o.k.k.r. x z.k.k.k.k.k.k.k.O. | k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.o. O.k.k.k.k.k.k.e. 1 z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.",
"k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.z.k. l k.k.k.k.k.x + k.k.k.k.k._ e.k.k.k.k.k.k.k.k.k.O 5 k.k.k.k.k.z.z.k.( 8.z.k.k.@ 4 k.z.k.k.k.k.k.k.@. | k.k.k.k.k.k.z.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.o. @.j.k.k.k.k.k.e. 1 k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.",
"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k. l k.k.k.k.k.} , k.k.k.k.k.} e.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.g g.k.k.k.a h.k.k.k.k.k.k.k.O. | k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.o. O.k.k.k.k.k.k.y. 1 k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.",
"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.j.k.j.k.k.k.k.k.k.k.k.k.k.k. h k.k.k.j.k.#. s k.k.k.k.k.} e.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.1 @ j.j.k.k.x #.k.k.k.j.k.k.k.O. | k.k.k.k.k.z.k.k.j.k.k.k.k.k.k.k.j.k.k.k.k.k.j.k.` O.k.k.k.k.k.k.e. i k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.j.k.k.k.k.k.k.k.j.k.k.j.k.j.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.j.k.j.k.k.k.j.k.k.j.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.",
"j.j.k.j.k.j.j.k.j.k.j.k.j.k.j.j.j.j.k.k.k.j.j.j.k.j.j.k.j.k.j.k.j.j.k.k.k.j.j.j.k.k.j.k.k.j.k.j.j.k.j.j.j.k.k.j.j.k.k.j.j.j.j.k.k.j.k.j.j.j.k.j.k.k.j.j.j.k.j.k.k.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.k.j.k.j.j.k.k.j.j.j.j.k.j.j.k.j.k. k j.j.k.k.j.f. x j.j.j.j.j._ e.j.j.k.k.k.j.k.j.j.O 1 j.k.j.k.k.j.j.k.. 4 k.j.j.j.#. x k.k.k.j.j.k.j.@. s ( ( ( ( _ ( ( ( } ( ( ( _ ( ( ( } 8.k.j.k.j.k.j.o. O.k.j.k.j.k.j.e. 1 k.j.j.j.k.k.k.j.k.j.k.k.j.k.j.k.j.j.j.k.k.k.k.j.j.j.k.j.k.j.k.j.j.j.k.j.j.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.j.j.k.k.k.j.j.j.j.j.k.k.j.k.k.j.j.j.k.j.k.j.j.k.j.j.k.j.k.k.j.j.j.k.k.j.k.k.k.j.k.k.j.k.j.k.j.k.j.j.k.j.k.j.k.j.k.k.j.j.j.",
"j.k.j.k.k.j.j.k.j.k.k.j.k.j.k.j.j.k.j.j.j.k.k.j.j.k.k.j.j.k.k.j.j.k.j.j.j.k.k.j.k.j.j.k.j.j.j.j.j.k.j.k.j.j.j.j.k.j.j.k.k.j.j.j.j.j.k.k.k.j.j.k.j.j.k.j.j.k.j.k.k.j.j.j.j.j.j.k.j.k.j.j.j.j.k.j.k.j.j.k.j.k.k.j.j.k.k.j.k.j.j.j.j.k.j. h j.j.j.j.j.k.. | k.k.j.k.j.} e.j.k.j.j.j.j.j.k.j.O 1 k.j.j.k.j.j.k.r. g j.k.j.k.f. i j.j.j.k.j.k.j.@. ( j.k.k.j.k.j.o. o.j.j.k.k.j.k.e. 1 j.j.k.j.k.k.j.k.j.k.j.j.k.j.j.k.j.j.k.k.j.j.k.k.j.j.k.k.j.k.j.j.j.j.j.j.k.k.j.j.j.k.j.j.k.j.k.k.j.k.j.j.k.k.k.j.j.k.j.j.k.k.j.j.k.j.j.j.j.j.k.j.j.k.j.k.k.j.k.j.j.j.j.k.j.j.j.j.j.j.k.k.j.j.k.k.j.j.j.k.j.j.j.k.j.j.k.k.j.j.k.k.j.",
"k.j.k.j.j.j.k.j.j.k.j.j.k.j.j.k.j.j.k.j.k.j.j.k.j.k.j.j.k.j.j.j.j.j.k.j.k.j.j.k.j.j.k.j.j.k.j.j.k.j.k.j.k.k.j.k.j.j.k.j.k.j.k.j.j.k.j.j.j.k.k.j.j.k.j.k.j.j.k.j.j.j.k.k.j.k.j.k.k.j.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.j.k.j.j.j.k.k.j.j.k. k j.j.k.k.j.j.< #.j.j.k.j.j._ e.k.j.k.j.k.k.j.j.j.O 1 j.k.j.j.j.k.k.O. ( k.j.k.j.j.@ j.k.j.k.j.j.j.O. x k.j.j.k.j.k.` O.j.k.j.j.j.k.y. 1 k.k.j.j.k.j.j.k.j.j.k.j.j.j.k.j.k.k.j.j.k.j.j.j.k.j.k.j.j.k.j.j.j.j.k.k.j.j.k.j.k.j.k.j.j.k.j.j.j.j.k.k.j.j.j.k.j.j.k.j.k.j.j.k.j.k.j.k.k.j.j.k.j.j.k.j.j.k.j.j.k.k.k.j.k.k.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.k.j.j.k.k.j.j.j.k.j.j.k.",
"j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j. g j.j.j.j.j.d.s r.j.j.j.j.j._ e.j.j.j.j.j.j.j.j.j.O 1 k.j.j.j.j.j.j.( o.j.j.j.j.j.a 8.h.j.j.j.j.j.O. ( j.j.j.j.j.d.o. O.k.j.j.j.j.j.e. 1 j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.",
"j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j. l j.j.j.j.j.j.x h.j.j.j.j.j.} 0.j.j.j.j.j.j.j.j.j.O 1 j.j.j.j.j.j.j.g 0.j.j.j.j.d.( ( k.j.j.j.j.j.O. x j.j.j.j.j.j.` O.j.j.j.j.j.j.e. 1 j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.",
"j.d.j.d.d.j.d.j.d.j.j.j.j.d.j.j.j.j.j.d.j.d.j.j.j.d.j.j.j.j.d.j.j.j.j.j.j.d.j.d.d.j.j.j.j.j.d.j.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.j.j.j.d.j.j.j.j.d.j.j.j.j.j.d.j.d.j.d.j.d.d.d.j.d.j.j.j.d.j.d.j.j.j.j.j.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.j. h j.j.j.j.d.d.| ; d.j.j.d.j.d._ e.j.d.j.d.d.j.d.j.d.O 1 j.j.d.j.j.j.j., h.j.j.d.j.j.8. 1 j.j.d.j.j.j.O. z d.j.j.j.d.d.o. O.j.j.d.j.j.j.9. i j.j.d.j.d.j.j.d.j.d.j.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.d.j.j.j.j.d.j.j.j.j.j.j.j.j.d.j.d.j.d.d.j.d.j.j.d.d.j.j.j.d.j.j.j.j.j.j.j.j.d.d.j.d.j.j.j.j.j.j.j.j.d.j.j.j.d.j.j.j.j.j.d.j.d.d.j.j.j.j.d.j.j.d.j.j.j.j.d.j.j.j.j.j.j.j.j.j.d.",
"j.j.j.j.j.j.j.j.j.j.j.d.j.j.d.j.d.d.j.j.j.j.d.j.j.j.j.d.d.j.j.j.d.d.j.j.j.d.j.j.j.j.d.j.d.j.j.j.d.d.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.d.j.j.j.j.j.j.d.j.j.j.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.d.j.d.j.j.j.d.j.j.d.j.j.j.j.d.j.j.j. l d.d.j.j.j.d.8. i j.j.d.j.j.j._ e.j.j.j.j.j.j.j.j.j.O 1 d.j.j.j.d.j.j.. ; d.d.j.j.j.d.h.. h.j.j.d.j.j.O. x j.j.d.j.j.d.o. O.j.j.j.d.d.j.e. 1 j.j.j.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.d.d.j.j.j.d.j.j.j.d.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.d.j.j.j.j.j.d.j.d.d.j.j.j.j.j.j.j.d.d.j.d.j.j.j.d.j.j.j.j.d.d.j.j.j.j.j.j.j.d.j.j.j.j.d.j.j.j.d.j.j.d.j.j.j.d.j.d.d.j.j.",
"d.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.d.j.d.j.d.j.d.j.j.j.d.j.d.j.j.d.j.j.d.j.d.j.d.j.d.j.d.j.j.d.d.d.j.d.d.j.d.d.d.j.j.d.d.j.d.j.j.d.j.j.d.j.d.j.j.j.d.j.j.d.j.j.j.d.d.j.d.j.j.d.d.j.d.d.j.d.d.j.j.j.d. h d.j.d.j.d.d.f. g j.j.j.d.j.j._ 0.d.d.d.j.d.j.j.d.d.O 1 d.j.d.j.j.d.r. i j.j.j.d.d.j.d.1 8.d.j.d.d.d.O. x d.d.d.d.j.d.` O.d.d.j.j.j.s.e. 1 d.d.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.d.j.j.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.j.d.j.d.d.j.d.d.d.j.d.j.j.d.d.d.j.d.d.j.d.d.d.j.j.j.j.j.d.j.j.j.d.d.d.j.j.d.j.j.d.j.d.j.d.d.j.j.d.j.d.j.d.j.d.j.d.d.j.j.d.j.d.j.d.j.j.d.j.j.j.d.d.j.j.j.d.j.",
"d.j.j.d.d.d.d.j.d.d.d.j.d.d.d.d.j.d.j.d.d.d.d.d.d.d.d.j.j.d.d.j.j.d.j.d.d.d.j.d.d.d.d.d.d.d.d.j.j.d.d.d.d.d.d.j.d.d.j.d.d.d.d.j.d.j.j.d.j.d.d.j.d.d.d.j.d.d.d.d.d.j.d.d.j.d.d.j.d.d.d.d.d.j.d.d.d.j.d.d.d.d.d.d.d.j.d.j.d.j.d.d.d.d.j. h d.j.d.d.j.j.d.. ( d.d.d.d.d.d._ 0.d.j.j.d.d.d.d.j.d.O 1 d.d.d.d.d.j.O. j d.d.d.d.j.j.d.x ( d.d.d.j.d.O. ( d.d.d.d.j.d.o. O.j.d.d.s.j.s.e. 1 d.j.d.j.d.d.d.d.j.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.j.j.d.d.j.d.d.d.d.d.j.j.d.j.d.j.d.d.d.d.j.d.j.j.d.j.d.d.j.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.j.d.d.d.d.d.j.d.j.d.d.d.d.d.d.d.d.j.d.d.j.d.d.d.j.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.",
"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.j.d.d.d.d. g d.d.d.d.d.d.d., O.d.d.d.d.d.d._ 0.d.d.d.d.d.d.d.d.d.O 1 d.d.d.d.d.d.( _ d.d.d.d.d.d.d.O. i d.d.d.d.d.O. x d.d.d.d.d.d.' ] d.d.d.d.d.s.e. 1 d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.",
"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d. l d.d.d.d.d.d.d.p 9.d.d.d.d.d.d._ 0.d.d.d.d.d.d.d.d.d.O 1 d.d.d.d.d.d.p #.d.d.d.d.d.d.d.q. . d.d.d.d.d.O. x d.d.d.d.d.d.` O.d.d.d.d.d.d.9. 1 d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.",
"d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.s.s.d.s.d.d.d.s.d.d.d.d.d.s.j.j.s.d.d.d.d.d.s.s.j.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.d.d.d.d.d. l s.j.s.s.d.d.d.z p.j.s.d.d.d.d._ 9.d.d.s.d.d.d.d.d.d.O 1 s.d.d.d.d.s., q.d.d.d.d.d.d.d.d.; 8.j.d.d.d.O. x j.d.d.s.d.s.` ] d.d.d.s.d.j.9. i d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.s.d.d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.",
"s.d.s.d.d.s.d.s.d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.s.s.s.d.s.d.s.d.s.j.s.s.d.d.s.d.s.d.s.d.s.d.s.d.d.s.d.d.d.s.d.s.d.d.s.d.d.d.d.s.s.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.s.d.s.d.d.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.s.d.s.d.d.s.d.. h j.d.s.d.d.d.s.` + d.d.d.d.d.s.d.) 9.s.d.d.d.d.s.d.d.s.O i d.d.s.d.s.s.. . d.d.d.d.d.s.s.d.s.h ( d.d.s.s.O. ( d.d.d.d.d.d.' O.s.s.d.s.d.s.9. 1 d.d.d.d.d.s.d.s.d.s.d.s.d.s.d.s.d.s.d.s.d.s.s.d.d.d.s.d.s.s.d.s.d.s.d.s.d.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.d.s.d.s.s.d.s.d.d.s.d.d.s.d.s.d.d.d.d.s.s.d.d.d.d.s.d.s.s.d.s.d.d.d.d.d.d.d.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.s.d.d.d.",
"d.s.s.s.s.s.s.d.s.s.s.d.s.s.s.s.s.d.s.d.s.d.s.d.s.d.s.d.s.s.d.s.s.j.s.d.s.s.s.d.s.j.s.d.s.s.s.d.s.d.d.s.d.s.s.s.s.s.s.s.s.s.s.d.d.s.d.s.d.s.s.s.s.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.s.d.d.s.s.d.s.s.s.d.s.d.s.d.s.s.d.s.d.s.s.s.d.s.s.d.d. g s.s.s.s.d.s.s.8. , d.s.s.d.s.s.s.) 9.s.d.s.d.s.s.d.s.s.O 1 s.d.d.s.s.9. , s.d.s.s.s.d.s.s.s.O. i s.s.d.d.] z s.s.s.d.s.s.' ] s.d.s.s.d.s.0. 1 s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.d.s.s.d.d.s.d.s.s.s.s.s.s.d.d.s.d.s.s.d.d.s.s.s.d.s.s.s.d.s.s.d.d.s.d.s.s.d.d.s.s.d.s.s.d.d.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.d.s.d.s.d.s.d.s.d.d.s.s.d.d.s.s.d.s.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.s.s.s.s.",
"d.s.d.s.d.s.d.s.s.d.s.d.s.d.d.s.s.s.d.s.d.s.s.s.d.s.s.d.s.d.s.s.s.s.s.s.s.j.s.s.s.s.d.s.s.d.s.d.s.s.s.s.d.s.d.s.d.s.d.s.s.d.s.d.s.s.d.s.s.s.d.d.d.s.s.d.d.d.s.d.s.d.s.s.s.d.d.s.d.s.d.s.d.s.d.d.d.s.d.s.d.s.s.d.s.d.s.d.d.s.s.d.s.s.j. h d.s.d.d.s.d.d.p. p s.d.d.s.s.s.s._ 9.d.s.s.d.s.d.s.s.s.O 1 d.s.s.d.s.' p s.s.s.d.s.d.s.s.s.q. . s.d.s.d.] z s.s.d.s.d.s.' O.s.s.s.d.s.s.0. 1 s.d.s.d.s.s.d.s.s.s.d.s.d.s.s.s.s.d.s.s.s.d.s.d.s.s.d.d.s.s.d.s.s.d.s.s.d.s.d.s.s.s.d.s.d.s.s.s.s.s.s.d.s.s.s.d.s.s.d.s.s.s.s.s.d.d.s.d.s.s.s.s.d.d.d.s.s.s.d.s.s.d.s.d.s.s.d.s.s.s.s.d.s.s.d.s.d.d.d.s.d.s.d.s.s.s.d.d.s.d.d.s.d.",
"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s. h s.s.s.s.s.s.s.s.O x s.s.s.s.s.s.s.) 9.s.s.s.s.s.s.s.s.s.. 1 s.s.s.s.s.( ( s.s.s.s.s.s.s.s.s.a., 8.s.s.s.] z s.s.s.s.s.s.` ] s.s.s.s.s.a.9. 5 s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.",
"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.d. g s.s.s.s.s.s.s.s.< ) s.s.s.s.s.s.s._ 9.s.s.s.s.s.s.s.s.s.O 1 s.s.s.s.s.p | s.s.s.s.s.s.s.s.s.p.( ) s.s.s.] z s.s.s.s.s.s.' ] a.s.s.s.s.s.9. 1 s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.",
"s.s.a.s.a.s.s.s.s.a.s.a.a.s.s.s.a.s.s.s.s.s.a.s.s.s.s.a.s.s.s.s.a.s.a.s.s.s.s.a.a.s.a.s.s.a.s.s.a.s.s.s.a.s.s.s.s.s.s.a.s.a.s.s.s.s.s.s.a.s.a.a.s.a.a.s.s.s.a.s.s.s.a.s.a.s.s.s.s.s.a.s.s.s.a.a.s.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.s.a.s. h s.a.s.s.s.a.a.s.g <.p.s.s.a.s.a.s.) 9.s.s.s.a.s.a.s.s.a.. 1 s.s.s.s.s., 8.s.s.s.w.s.s.w.s.s.s.<. p s.a.a.] z s.s.a.a.s.s.' ] a.s.s.a.s.s.9. i a.s.s.a.s.s.s.a.s.s.a.s.s.s.s.a.s.s.w.s.s.s.a.s.a.a.s.s.s.s.s.a.s.s.s.s.a.a.s.s.s.s.a.s.s.s.s.a.s.s.s.s.s.a.a.s.s.a.s.s.s.a.s.s.s.s.s.s.a.s.s.s.a.s.s.a.a.s.a.s.s.s.s.s.a.s.a.s.s.a.s.s.s.s.a.s.a.s.a.s.s.s.s.a.a.s.s.s.a.s.s.s.s.",
"a.a.s.s.s.s.a.a.s.s.s.s.s.s.a.a.s.s.s.a.a.s.s.s.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.s.a.s.s.a.s.a.s.s.a.s.s.s.a.s.a.a.s.s.s.s.a.a.s.a.a.s.s.s.s.s.s.s.s.s.a.a.s.s.a.s.s.s.a.s.s.a.a.s.s.a.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.s.a.s.a.s.a.s.s. h s.s.a.a.s.s.s.w.( q.s.s.s.s.s.s.a.) e.a.a.s.s.s.s.a.a.s.O 1 w.s.s.s.s. p.s.s.s.s.s.s.s.s.s.s.p.. O s.a.s.] z a.a.s.s.a.p.' ] s.a.s.a.s.s.9. . . 1 s.a.a.s.s.a.s.s.s.a.s.s.a.a.s.s.s.s.s.s.s.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.s.s.a.a.s.s.s.a.a.s.s.s.a.s.a.s.s.s.s.a.s.s.a.s.s.s.a.s.a.s.s.s.s.a.s.s.a.s.s.s.s.s.s.a.s.a.s.a.s.s.s.a.s.s.a.a.s.s.s.s.s.s.s.a.a.s.s.s.s.a.s.s.a.a.s.s.",
"s.a.a.s.a.a.s.a.s.a.s.s.a.s.a.s.a.a.a.s.a.s.a.s.s.a.s.a.s.a.s.a.a.s.s.a.s.s.s.a.a.s.a.s.a.s.s.s.a.s.s.s.a.s.s.a.a.a.s.s.a.s.s.s.a.s.s.a.s.s.a.s.a.s.s.a.s.s.a.s.a.a.s.s.a.s.s.s.s.a.a.s.a.s.s.a.a.s.a.s.a.s.a.s.a.a.s.a.a.s.a.s.a.s.s.j j j j j j j j j j j j j j j j j j j j j ] a.a.s.s.a.a.a.a.<.j j j j j j j j j j j j j j j w.s.s.s.a.s.s.a.<.j j j j j j j j j j j j j j j j j j j j j q.s.a.s.a.s.s.a.s.s.( h g h h h h h h h h h h h h j h h h h h h h h ) s.s.s.s.q.j j j j j j j j j j j j j j j j j j j j j j j z s.s.a.s.s.s.s.a.s.s.a.s.) j j j j j j j j j j j j j j j j j j j j j j q.s.a.0.h h h h h h h h h h h h h j h h h h h h h h h h h h h h h h j h h h h h h h h h h h [ a.s.a.s.s.a.9.j j j j j j j j j j j j j j j j j j j j j j j j 9.a.a.a.s.a.a.q.j j j j j j j j j j j j j j j j z j j j j j ) s.a.s.s.a.s.a.s.a.a.a.s.s.a.s.s.a.s.w.a.s.a.s.a.s.s.a.s.s.a.a.s.a.s.a.s.a.s.a.s.a.a.s.a.s.a.s.s.a.s.a.a.s.a.s.s.s.a.a.s.a.s.s.a.s.s.a.s.s.a.s.s.a.s.s.a.s.s.a.a.s.a.s.a.s.s.a.s.s.a.s.a.s.s.a.s.a.s.a.s.s.w.s.s.a.a.s.a.s.a.s.a.s.",
"a.a.s.a.a.s.s.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.s.s.w.w.w.s.w.a.a.a.p.a.s.s.s.w.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.a.s.a.s.s.s.w.w.s.a.w.a.a.a.a.a.s.a.a.a.a.p.a.w.s.a.w.a.a.s.a.a.a.s.a.s.s.a.s.a.a.w.s.a.a.a.a.a.a.a.a.w.s.w.a.a.a.a.s.a.a.w.s.s.w.w.s.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.w.w.s.s.a.7.s.w.s.a.w.a.a.a.s.s.w.s.a.a.a.a.a.s.s.s.w.w.s.a.w.w.s.s.w.a.a.a.a.s.a.a.a.a.a.a.a.p.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.w.s.s.s.w.s.s.w.s.a.a.a.a.a.",
"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.s.s.w.a.a.a.a.a.a.w.w.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.s.w.a.a.a.a.a.a.a.a.s.w.a.a.w.a.a.a.a.s.w.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.w.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.a.a.a.a.a.w.w.s.s.a.a.a.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.a.a.w.w.s.s.a.a.a.a.",
"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.w.s.w.a.a.a.a.a.a.s.s.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.w.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.w.a.w.a.a.a.a.w.a.a.a.a.a.a.s.w.a.a.a.a.a.a.a.w.a.a.w.w.s.w.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.w.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.a.a.a.a.a.w.s.w.w.a.a.a.a.w.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.w.s.w.w.a.a.w.s.w.w.a.a.w.a.",
"a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.s.w.w.s.w.a.a.a.w.w.s.w.w.s.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.s.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.s.w.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.a.a.w.s.w.a.s.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.s.s.w.w.s.w.a.a.w.s.w.s.a.a.a.a.",
"w.a.w.a.w.w.a.w.a.a.a.w.w.a.w.a.a.a.7.a.a.w.w.a.a.a.7.a.w.a.w.a.w.a.w.a.a.a.w.a.w.a.w.a.a.w.w.a.a.w.a.a.a.a.a.w.w.a.a.a.w.a.w.a.a.a.w.a.a.a.a.w.w.a.w.a.a.w.a.w.a.a.w.a.a.w.w.a.w.a.w.w.a.a.w.a.w.a.w.a.a.w.a.w.a.a.a.w.w.a.w.a.a.a.w.a.a.a.7.a.a.a.w.a.w.a.a.w.a.a.w.a.a.w.a.a.w.w.a.w.a.a.w.a.a.w.w.a.a.w.w.a.w.a.a.a.a.w.w.a.w.w.w.s.w.a.w.a.w.s.w.w.w.s.w.w.a.a.a.w.a.w.a.a.a.w.w.a.a.a.7.a.a.w.a.a.w.a.a.w.w.a.w.a.7.a.w.a.a.w.a.a.w.a.a.w.a.a.a.w.a.a.w.a.w.a.w.a.w.a.a.w.a.a.a.w.w.a.w.a.w.a.a.a.w.a.a.w.w.a.a.a.w.a.w.a.w.a.a.w.w.a.a.7.w.a.w.a.w.w.w.a.a.w.w.a.w.w.a.w.a.a.w.a.a.a.w.a.s.w.w.a.a.w.w.a.a.w.a.a.a.w.7.a.w.w.a.w.a.w.w.a.a.w.a.a.w.a.a.w.w.s.w.w.w.a.w.a.a.w.a.w.a.a.a.w.a.a.w.a.a.w.a.w.a.a.a.w.w.a.w.a.a.a.a.w.a.a.7.a.w.a.w.a.w.a.a.w.a.w.w.w.w.a.w.a.a.a.a.a.w.a.a.a.w.a.w.a.w.a.a.w.w.a.w.a.w.w.a.w.a.w.a.a.a.a.a.w.a.a.w.a.a.w.a.a.w.a.w.w.w.a.w.a.w.a.w.w.a.w.a.a.w.a.a.w.a.a.a.w.a.w.w.a.a.w.a.w.w.a.w.w.w.a.w.a.w.w.a.w.w.a.w.a.w.a.a.w.a.w.w.a.7.a.w.a.a.a.w.w.a.w.a.a.w.w.a.a.a.w.w.a.w.a.w.a.w.w.s.w.w.a.a.w.w.w.w.a.w.a.w.w.",
"w.w.w.w.w.a.w.w.w.w.w.a.w.w.a.w.w.a.a.a.a.a.w.a.a.w.w.a.w.a.w.a.w.w.a.w.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.a.w.w.w.w.a.w.w.w.a.w.a.w.w.a.a.w.a.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.w.a.w.w.w.w.a.w.w.w.s.w.w.a.a.a.a.7.a.a.w.a.w.w.a.a.w.w.a.w.w.w.w.a.w.w.w.a.a.a.a.a.a.a.w.w.w.w.w.a.w.w.w.a.w.a.w.w.w.a.a.w.a.w.a.w.a.w.w.w.w.w.a.w.w.a.w.w.a.a.7.7.a.w.w.a.w.w.w.w.a.w.w.a.w.w.w.a.a.a.a.w.a.w.a.w.a.w.w.w.a.w.w.w.a.a.a.a.a.w.a.a.7.7.a.7.w.w.a.w.w.w.a.w.w.w.w.7.a.a.a.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.w.a.w.w.w.a.w.a.w.w.7.a.7.a.a.w.w.w.w.a.a.w.w.w.w.w.w.a.w.a.w.w.w.w.a.w.w.w.a.w.w.w.w.a.a.w.a.w.7.a.w.a.w.w.w.a.w.a.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.a.w.a.w.w.w.a.w.a.w.w.w.w.w.w.w.a.w.a.w.w.w.a.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.a.w.w.a.w.w.w.w.a.w.w.a.w.w.w.w.w.w.a.w.w.w.w.a.a.w.w.w.w.a.",
"w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.7.a.7.7.a.7.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.w.w.7.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.a.7.a.a.w.w.w.w.w.w.w.w.w.w.w.w.a.7.7.a.7.w.w.w.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.",
"w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.a.w.w.7.a.7.a.7.a.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.a.a.7.7.a.a.a.w.w.w.w.w.7.a.7.a.7.a.w.w.w.a.w.w.a.7.a.7.w.w.w.w.a.7.a.7.a.7.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.a.7.a.a.7.a.7.a.7.w.w.w.w.w.w.w.w.w.w.7.a.a.w.w.w.w.w.w.w.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.7.a.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.",
"w.w.w.w.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.7.w.w.w.w.7.w.w.w.w.w.w.w.w.7.w.w.7.w.w.7.w.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.w.w.w.7.w.w.w.a.7.a.7.w.7.w.w.7.w.w.7.w.w.7.w.w.w.w.w.w.7.7.w.7.w.w.w.w.w.7.w.w.w.w.w.w.w.7.w.7.w.a.7.7.a.7.a.7.a.w.7.7.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.7.w.w.7.w.w.w.7.7.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.w.w.7.w.w.w.7.w.w.7.a.7.a.7.a.w.7.7.w.a.7.7.w.7.w.7.w.7.a.7.a.7.7.7.a.7.w.w.w.a.7.a.7.w.7.w.w.7.w.w.7.7.a.7.a.w.w.w.7.7.a.7.a.7.a.w.w.w.7.w.7.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.7.7.a.7.w.w.7.w.7.7.a.7.a.7.a.7.w.w.w.7.w.w.w.w.w.7.w.7.w.a.7.7.w.7.w.a.7.a.7.a.7.w.w.w.7.w.w.7.w.w.w.w.7.7.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.7.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.7.w.w.w.7.w.w.w.w.7.w.w.7.w.w.7.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.7.w.w.7.w.w.w.7.w.w.w.w.7.w.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.w.w.7.",
"7.w.w.w.w.7.7.7.w.7.w.w.w.7.7.w.w.7.7.w.w.w.7.7.7.w.w.7.7.w.7.7.w.w.7.w.w.7.7.7.w.w.7.w.7.w.w.7.w.7.7.w.7.w.7.w.w.7.7.w.7.w.7.w.7.7.w.w.w.7.7.7.7.a.a.7.7.a.7.w.w.w.7.w.7.w.w.7.w.7.w.w.7.w.w.w.w.7.7.w.7.w.7.w.7.7.w.7.7.w.w.w.7.w.7.7.w.7.w.7.7.a.7.a.w.w.7.w.w.7.7.w.7.w.7.7.w.w.7.w.w.w.w.7.7.w.7.w.w.7.w.7.w.7.7.w.w.7.w.7.7.w.w.w.w.w.7.w.w.7.7.w.7.w.w.w.7.w.7.7.w.7.7.a.7.a.a.7.7.w.7.w.7.w.w.7.7.7.7.7.7.w.7.7.7.w.7.7.7.a.7.w.7.a.7.w.w.w.7.w.a.7.7.w.7.w.w.7.7.7.7.7.7.7.w.w.7.w.w.7.w.7.7.w.7.w.7.w.w.7.7.w.7.w.7.w.7.7.w.w.w.7.7.w.w.7.7.w.w.w.7.7.7.w.7.7.7.w.7.w.w.7.w.7.7.a.7.a.7.a.w.7.7.a.a.7.7.w.w.w.7.7.w.7.7.w.w.7.w.w.w.7.w.w.7.a.w.7.7.7.w.7.7.w.7.w.w.w.w.w.7.w.w.w.w.w.7.w.7.w.7.7.w.7.7.7.w.7.7.w.w.w.7.7.w.w.w.7.7.w.w.7.7.w.7.w.7.7.7.w.w.w.w.7.w.7.w.7.w.7.7.w.w.w.7.w.7.7.w.w.w.7.7.w.w.w.w.7.w.7.w.7.w.7.7.w.7.w.w.7.7.w.w.7.7.w.w.7.w.w.7.w.w.7.7.w.w.w.w.w.7.w.7.w.7.w.7.w.7.w.7.w.7.w.w.7.w.7.7.w.7.w.7.w.7.7.w.7.a.7.7.7.w.w.w.w.7.7.7.w.w.7.7.w.7.w.7.w.7.w.w.7.w.7.w.7.w.7.7.7.w.7.7.w.w.w.w.w.w.w.w.7.7.w.w.w.7.7.7.w.w.7.",
"7.7.7.w.7.w.7.7.w.w.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.w.7.w.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.a.7.7.w.7.7.w.w.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.a.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.w.7.7.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.w.w.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.",
"7.w.w.7.7.w.7.7.7.w.7.w.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.w.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.w.7.7.w.w.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.7.7.7.w.7.w.7.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.w.7.w.7.7.w.7.7.7.w.7.7.7.w.7.w.7.7.7.7.7.w.7.7.7.w.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.w.",
"7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.w.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.",
"7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.",
"7.7.5.7.5.7.7.7.5.7.7.5.7.5.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.6.7.6.7.6.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.6.7.6.6.7.7.7.7.6.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.6.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.5.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.6.7.6.7.6.7.6.7.7.7.6.7.7.7.7.6.7.6.7.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.6.7.7.7.7.6.7.7.6.7.6.7.6.7.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.7.7.6.6.7.7.6.6.7.6.7.6.7.7.7.7.7.6.6.7.7.6.7.7.7.7.7.7.7.6.6.7.7.6.7.7.7.6.7.6.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.6.7.6.7.7.7.7.7.7.6.7.7.7.7.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.6.7.6.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.7.6.7.7.7.7.7.6.7.6.7.6.",
"7.7.7.6.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.5.7.7.5.7.6.7.7.6.7.6.7.6.7.6.7.6.7.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.6.6.7.7.7.6.7.7.6.7.6.7.7.7.7.7.6.7.6.7.6.7.7.7.7.6.7.6.6.7.6.7.6.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.5.7.7.7.7.6.7.7.7.6.7.7.6.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.6.7.6.6.7.6.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.6.7.7.7.7.6.7.7.7.7.7.6.7.6.7.7.6.7.6.7.6.7.6.7.6.7.7.6.6.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.6.7.6.7.7.7.7.6.7.7.7.7.7.7.7.6.7.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.7.7.6.7.6.7.7.6.7.6.7.7.6.7.6.7.6.7.7.7.6.6.7.7.6.7.7.7.7.7.6.7.6.7.6.7.7.6.7.6.7.6.7.6.6.6.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.6.7.7.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.6.7.7.6.7.6.7.7.7.6.7.6.7.7.6.7.6.7.7.7.7.7.7.6.7.7.7.6.",
"6.6.7.7.7.7.6.7.7.7.7.7.5.7.7.5.6.7.6.7.7.6.6.7.7.7.6.6.6.6.6.7.6.7.6.6.7.7.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.7.6.7.6.7.7.6.6.7.6.7.7.6.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.7.7.6.7.6.7.7.6.6.7.7.6.6.7.7.7.6.7.6.7.6.6.7.6.7.7.7.7.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.7.6.7.7.7.7.5.7.7.6.7.6.7.6.7.7.6.6.6.7.6.6.7.7.6.6.7.7.7.6.6.6.7.7.6.7.7.6.7.6.6.7.6.6.7.6.7.7.7.6.7.6.6.7.7.7.6.7.7.7.7.7.7.6.7.6.7.7.6.6.7.7.7.6.7.6.6.6.7.6.6.7.7.7.7.6.7.6.7.5.7.7.6.6.7.6.7.7.6.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.7.6.7.7.6.7.6.6.7.6.6.7.6.7.6.7.7.6.6.7.7.6.7.6.7.6.6.6.7.6.6.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.6.7.7.6.6.7.7.7.6.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.7.7.6.7.7.6.6.7.7.7.7.7.6.7.6.7.7.6.6.7.7.7.7.7.7.6.7.6.7.7.6.7.7.6.6.6.6.7.6.6.7.7.6.7.6.6.7.7.7.7.7.6.7.6.6.7.7.6.7.6.6.6.7.6.6.6.6.7.6.7.6.6.7.7.6.7.6.6.7.7.7.6.6.7.6.6.7.6.6.7.6.7.7.6.6.7.7.7.6.7.6.6.6.7.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.6.7.6.7.7.6.6.7.7.6.7.6.7.6.7.7.6.7.7.6.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.6.7.6.6.7.6.7.",
"6.6.7.6.6.6.6.6.5.7.7.5.6.7.7.5.7.6.6.6.6.6.7.6.6.6.6.7.6.7.7.6.6.6.6.7.6.6.6.6.5.7.6.7.6.7.6.7.7.6.6.6.6.7.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.6.7.6.6.6.7.6.6.6.6.7.6.6.6.6.7.7.6.6.7.6.7.6.6.7.6.6.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.6.6.5.7.7.7.6.7.6.7.6.6.7.6.6.7.6.6.7.6.7.6.6.7.7.6.6.6.6.7.7.6.6.6.6.7.6.6.6.6.7.6.7.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.7.6.7.7.5.7.7.6.6.6.6.6.7.6.6.6.6.6.6.7.7.6.6.6.7.6.6.6.6.6.7.6.6.7.7.7.6.7.7.6.6.6.6.7.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.6.6.7.6.7.6.6.6.7.6.6.6.6.7.6.7.6.7.6.6.6.7.6.6.7.6.6.7.6.6.7.6.6.6.6.6.6.7.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.7.7.6.6.6.6.7.6.7.6.6.6.6.6.7.6.6.7.6.6.6.7.6.6.7.6.6.6.7.6.6.6.6.6.7.7.6.6.6.7.6.6.6.6.6.7.6.6.6.6.7.7.6.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.7.6.7.6.6.7.6.6.7.6.7.7.6.6.6.6.7.6.6.6.6.6.7.7.6.6.6.7.6.6.7.6.6.7.6.6.6.6.6.7.6.6.6.6.6.6.7.7.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.7.6.6.5.7.7.7.6.7.5.7.6.6.7.6.6.7.6.6.6.6.7.6.6.6.6.6.5.7.6.7.6.7.6.7.",
"6.6.6.6.6.6.6.6.7.5.5.7.6.6.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.7.5.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.7.6.6.5.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.",
"6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.5.5.6.5.6.6.6.6.6.6.6.6.6.6.5.6.7.5.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.5.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.5.6.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.5.6.5.6.6.6.6.6.6.6.",
"6.6.5.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.6.6.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.5.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.5.5.6.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.5.6.6.6.6.6.6.5.6.6.6.6.6.5.6.6.5.6.5.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.",
"6.5.6.5.6.6.6.5.5.5.6.5.5.6.5.6.5.6.6.6.6.5.6.5.6.6.5.6.6.6.5.6.5.6.5.6.6.6.5.6.5.6.6.5.6.6.6.5.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.6.6.6.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.6.5.5.5.6.5.6.6.6.6.5.5.6.5.5.6.5.6.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.5.6.6.6.5.6.6.5.6.5.6.6.6.6.6.6.5.6.5.6.6.6.5.6.5.6.6.6.5.6.5.6.5.6.5.5.6.5.6.5.6.6.5.5.5.6.6.5.6.5.6.5.6.6.5.6.5.6.5.5.6.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.5.6.6.6.5.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.6.5.6.5.5.6.5.6.5.5.6.5.5.6.5.6.5.5.6.6.5.6.5.5.6.5.6.5.5.6.5.6.5.6.6.6.6.6.6.5.6.5.5.6.5.6.6.6.6.5.5.5.5.6.5.6.5.5.6.5.6.6.5.6.5.6.6.6.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.5.6.5.5.6.6.5.6.5.5.6.6.6.5.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.5.6.5.5.6.5.6.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.6.6.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.6.6.6.6.5.6.5.6.6.6.5.6.5.6.5.6.5.6.5.5.6.5.6.6.6.6.6.5.6.5.6.5.6.5.6.5.5.6.5.5.5.6.5.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.5.5.6.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.",
"5.6.5.6.5.5.6.6.5.6.6.5.6.5.6.5.6.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.6.5.5.5.6.5.6.5.5.5.5.6.5.5.6.6.5.5.5.5.6.5.6.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.5.5.5.6.5.6.6.5.6.5.5.6.5.6.5.5.6.5.5.5.6.5.5.6.5.6.5.5.5.6.5.6.5.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.5.5.6.5.6.5.5.5.5.6.6.5.5.5.5.6.5.5.5.6.5.6.6.5.6.5.6.5.5.6.5.6.6.5.5.6.6.5.6.5.5.6.5.6.5.6.6.5.6.5.5.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.6.5.5.5.6.5.5.6.5.6.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.6.5.5.5.6.5.6.5.5.5.5.6.5.5.6.6.5.6.5.6.6.5.6.5.6.6.5.6.5.6.6.5.5.6.6.5.6.5.6.6.5.6.5.6.6.5.6.5.5.5.5.5.5.5.6.5.5.6.6.5.6.5.5.6.5.6.5.6.6.5.6.5.6.6.5.6.5.5.6.5.6.5.5.5.6.5.5.6.5.6.5.5.6.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.5.5.6.5.6.5.6.5.5.5.5.5.5.5.5.5.6.5.6.5.6.5.6.6.5.6.5.5.6.5.6.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.6.5.6.5.6.5.5.6.5.6.5.6.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.5.5.6.5.6.6.5.6.5.5.5.5.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.",
"5.5.5.6.5.5.5.6.5.5.5.5.5.6.6.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.6.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.6.6.5.5.6.5.5.5.6.5.5.5.6.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.6.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.5.6.5.5.5.5.5.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.",
"5.6.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.6.5.5.5.5.6.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.6.5.5.6.5.6.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.5.5.5.6.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.",
"5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.",
"5.5.5.4.5.5.5.5.5.4.5.5.5.5.5.4.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.4.5.5.5.5.4.5.4.5.5.5.5.4.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.5.4.5.4.5.5.5.5.5.5.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.4.5.4.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.4.5.4.5.5.5.4.5.4.5.5.5.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.4.5.4.5.4.5.5.5.4.5.5.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.5.4.5.4.5.5.5.5.5.5.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.3.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.",
"5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.5.4.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.5.4.5.5.5.5.3.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.4.5.4.4.4.5.5.4.5.5.5.3.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.4.5.4.4.5.4.4.5.4.5.4.4.4.5.5.4.5.4.4.4.4.5.4.4.5.5.5.4.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.5.4.5.5.4.5.5.4.5.5.4.5.5.4.4.5.5.4.5.4.4.5.4.5.5.4.5.5.3.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.4.3.5.5.4.5.5.5.5.5.5.5.3.5.5.5.3.5.3.5.3.5.5.3.5.",
"4.4.5.4.4.5.5.4.4.5.5.4.4.4.5.4.4.5.4.5.5.4.4.4.4.3.5.5.4.5.5.4.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.4.4.5.5.4.4.4.4.4.5.4.5.3.5.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.4.5.4.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.5.3.4.5.5.4.5.4.4.3.5.5.3.5.5.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.5.5.4.4.5.4.5.5.4.4.4.5.5.4.4.4.5.5.4.5.4.4.4.5.5.5.3.3.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.5.4.4.5.4.4.4.4.4.4.4.4.5.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.3.5.4.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.4.5.4.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.5.5.4.4.5.5.4.4.5.3.3.5.3.5.3.5.5.3.5.5.5.5.5.5.5.3.5.5.5.",
"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.4.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.5.5.4.3.5.4.5.4.4.5.3.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.5.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.4.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.5.5.5.5.5.5.3.5.3.5.3.5.3.3.5.3.5.3.5.3.5.",
"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.4.3.5.4.4.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.3.3.4.4.4.3.4.5.3.4.3.5.5.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.3.4.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.4.5.3.3.3.5.3.5.3.5.3.5.3.5.4.3.5.3.5.5.3.3.",
"4.4.3.4.3.4.4.4.3.3.4.4.4.4.3.3.3.4.4.4.4.4.4.3.3.3.3.4.4.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.3.3.4.4.3.4.4.4.3.3.4.4.4.4.3.3.3.4.4.4.4.4.4.3.3.4.3.4.4.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.3.4.4.4.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.4.3.4.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.4.4.3.4.4.3.4.3.3.4.3.4.4.3.3.3.3.3.5.3.3.3.5.3.4.3.5.3.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.3.4.4.4.3.4.4.4.4.3.4.3.4.3.3.4.4.4.3.4.3.3.4.3.4.4.3.4.4.4.3.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.3.4.4.3.4.3.4.4.4.4.3.4.3.4.4.4.4.4.4.3.4.3.3.4.4.3.4.3.4.4.4.3.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.3.4.4.4.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.4.3.4.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.3.4.3.5.3.3.5.3.3.3.5.5.3.3.3.5.3.3.3.5.3.3.3.3.4.3.3.4.4.4.3.",
"4.3.3.4.4.4.3.4.4.4.4.3.3.4.4.4.4.4.3.3.3.3.4.3.4.4.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.4.3.4.3.3.4.4.4.4.3.3.4.4.4.4.4.3.3.3.3.4.3.4.3.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.2.4.4.3.4.3.3.4.3.4.4.4.4.3.4.4.3.4.3.4.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.3.3.4.4.4.4.3.4.4.3.4.3.4.4.4.5.5.3.3.5.5.3.3.4.3.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.4.3.4.3.4.3.3.4.3.4.4.4.4.4.3.3.4.4.4.4.4.3.3.4.3.5.4.3.4.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.3.3.4.3.4.4.3.3.4.3.4.4.4.3.4.3.3.4.4.4.4.4.3.3.4.3.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.2.4.4.3.4.3.3.4.3.4.4.4.4.3.4.4.3.4.3.4.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.3.4.3.3.5.3.3.5.3.3.3.5.5.3.3.3.5.5.3.3.5.5.4.3.5.3.4.3.4.4.",
"3.4.4.3.3.3.3.3.4.3.3.3.4.3.3.3.3.4.4.4.4.3.3.3.3.5.3.3.3.5.3.4.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.3.4.3.4.3.3.4.3.3.3.4.3.3.3.3.4.4.4.4.3.3.3.3.5.3.3.3.5.4.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.3.4.4.3.3.4.4.3.3.4.3.4.3.4.4.3.3.4.3.4.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.4.3.4.2.3.4.4.4.4.4.4.3.4.3.3.3.5.3.3.3.3.3.3.5.3.3.3.5.4.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.4.3.3.3.3.4.3.3.3.4.3.4.4.3.3.3.3.4.3.4.3.3.3.3.3.3.4.3.3.5.3.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.4.3.3.4.3.3.3.4.3.4.3.3.3.3.3.4.4.3.3.3.3.3.4.3.4.4.4.3.3.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.3.4.4.3.3.4.4.3.3.4.3.4.3.4.4.3.3.4.3.4.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.4.4.4.4.3.5.3.3.3.3.3.5.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.3.5.3.3.3.",
"3.3.4.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.4.3.3.4.3.3.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.4.3.4.3.3.4.2.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.4.3.3.4.3.3.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.3.3.3.3.3.4.3.3.3.4.3.3.",
"3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.",
"3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.3.2.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.2.4.2.3.2.2.3.3.2.3.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.3.2.3.2.3.2.2.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.2.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.2.4.2.3.2.2.3.3.2.3.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.2.3.2.3.2.3.",
"3.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.4.2.3.3.3.3.3.3.2.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.2.2.3.3.2.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.4.2.3.3.3.3.3.3.2.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.2.3.3.3.3.2.2.3.3.2.3.3.3.3.3.3.",
"3.3.3.3.2.3.3.2.3.3.2.3.3.2.2.3.2.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.3.3.2.3.3.2.3.3.2.3.2.2.2.3.2.2.3.3.3.2.2.3.2.2.2.3.2.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.2.3.2.2.2.2.2.3.3.2.2.3.2.2.2.3.2.3.3.2.2.3.2.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.2.2.2.2.2.2.3.2.2.2.3.2.3.3.2.2.2.3.2.2.3.2.2.3.2.3.2.3.3.2.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.2.2.3.2.2.3.3.2.3.2.2.2.3.2.2.3.3.2.3.2.2.3.2.3.2.3.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.2.3.3.2.2.2.3.3.2.3.2.2.3.2.3.2.3.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.2.3.2.2.2.2.2.3.3.2.2.3.2.2.2.3.2.3.3.2.2.3.2.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.3.3.2.2.3.3.3.3.2.2.3.3.2.3.3.2.3.3.2.3.3.2.3.2.3.2.2.3.2.",
"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.2.3.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.2.2.3.",
"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.",
"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.",
"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.",
"2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.1.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.1.",
"1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.2.2.1.1.1.2.2.1.1.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.2.1.2.1.2.2.1.1.1.2.1.2.1.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.2.2.2.2.1.1.2.2.2.1.2.1.2.1.2.",
"2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.1.2.2.1.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.1.2.2.1.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.2.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.2.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.",
"1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.2.1.1.2.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.",
"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1."
};

155
mixer/icons/icon-large.svg Normal file
View File

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="512"
height="512"
id="svg3137">
<defs
id="defs3139">
<linearGradient
x1="0"
y1="150"
x2="300"
y2="150"
id="linearGradient3813"
xlink:href="#SVGID_1_"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-5.5328369e-8,-300.00001)" />
<linearGradient
x1="149.9995"
y1="4"
x2="149.9995"
y2="304"
id="SVGID_1_"
gradientUnits="userSpaceOnUse">
<stop
id="stop6"
style="stop-color:#fffdf7;stop-opacity:1"
offset="0.3398" />
<stop
id="stop22"
style="stop-color:#20fb00;stop-opacity:1"
offset="0.99440002" />
</linearGradient>
<linearGradient
x1="0"
y1="150"
x2="300"
y2="150"
id="linearGradient3135"
xlink:href="#SVGID_1_"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.7066667,0,0,1.7066667,-186.78068,-642.00002)" />
</defs>
<metadata
id="metadata3142">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-130,186.78068)"
id="layer1">
<rect
width="512"
height="512"
x="-186.78067"
y="-642"
transform="matrix(0,1,-1,0,0,0)"
id="rect24"
style="fill:url(#linearGradient3135);fill-opacity:1" />
<rect
width="435.42188"
height="65.710075"
x="173.40906"
y="196.90019"
id="rect28"
style="fill:none" />
<g
id="g3571">
<path
d="m 321.16035,174.86778 0,94.91448 -21.57414,0 0,-64.07754 -8.61793,64.07754 -15.30122,0 -9.08693,-62.6119 0,62.6119 -21.57414,0 0,-94.91448 31.95083,0 c 0.93797,5.70629 1.9346,12.42866 2.98989,20.16713 l 3.40028,24.15365 5.62803,-44.32078 32.18533,0"
id="path3531"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 355.74932,174.86778 0,94.91448 -24.68128,0 0,-94.91448 24.68128,0"
id="path3533"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 415.78171,174.86778 -8.61793,41.97576 13.01483,52.93872 -22.86389,0 c -2.73589,-9.45822 -5.23724,-20.96832 -7.50405,-34.53035 -0.62537,5.97982 -1.48521,12.33089 -2.57952,19.05325 l -2.34501,15.4771 -24.03641,0 8.91106,-52.93872 -8.91106,-41.97576 23.86053,0 c 0.4299,2.61869 1.28973,6.9765 2.57952,13.07345 1.01614,4.65103 1.85644,8.91113 2.52089,12.78034 l 5.27628,-25.85379 20.69476,0"
id="path3535"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 423.69613,174.86778 41.15501,0 0,18.99462 -16.47373,0 0,17.99799 15.41848,0 0,18.05661 -15.41848,0 0,20.87064 18.11524,0 0,18.99462 -42.79652,0 0,-94.91448"
id="path3537"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
<path
d="m 343.65625,361.65625 0,94.90625 24.65625,0 0,-42.78125 c 3.40023,5e-5 5.49954,0.60095 6.28125,1.8125 0.82072,1.21163 1.24997,4.35667 1.25,9.4375 l 0,31.53125 22.90625,0 0,-25.03125 c -7e-5,-7.66035 -0.22639,-12.31937 -0.65625,-14 -0.3909,-1.71964 -1.41321,-3.62386 -3.09375,-5.65625 -1.68065,-2.0323 -4.95836,-3.63211 -9.84375,-4.84375 5.39348,-0.50804 9.00677,-2.05327 10.84375,-4.59375 1.83687,-2.54038 2.74993,-7.48814 2.75,-14.875 -7e-5,-8.09022 -1.31895,-13.98231 -3.9375,-17.65625 -2.57957,-3.71285 -5.91969,-6.00723 -10.0625,-6.90625 -4.10382,-0.89883 -11.97812,-1.34366 -23.625,-1.34375 l -17.46875,0 z M 368.3125,377.875 c 2.85307,7e-5 4.81971,0.46833 5.875,1.40625 1.09431,0.93809 1.65622,2.92814 1.65625,5.9375 l 0,5.21875 c -3e-5,4.182 -0.58536,6.65589 -1.71875,7.4375 -1.09438,0.74264 -3.0376,1.12506 -5.8125,1.125 l 0,-21.125 z"
transform="translate(130,-186.78068)"
id="path3560"
style="font-size:120.06476593px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Impact;-inkscape-font-specification:Impact Bold" />
</g>
<polygon
points="300,0 300,110.426 150,188 0,110.426 0,0 "
transform="matrix(1.7066667,0,0,1.7066667,130,-186.78068)"
id="polygon26"
style="fill:#000200" />
<g
id="g3518">
<path
d="m 247.89101,-128.45434 c -6e-5,1.1566 -0.40483,2.19744 -1.21431,3.12252 -0.8096,0.9253 -1.85043,1.38789 -3.12252,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98988,0.69389 -3.58516,1.3879 -5.37771,4.22129 -5.37767,8.50019 l 0,82.226277 c -4e-5,4.510316 -1.33,8.44237 -3.98988,11.796175 -3.2382,4.279007 -8.03762,6.418507 -14.39827,6.418507 -6.12941,0 -10.81318,-2.081676 -14.05133,-6.245034 -2.77558,-3.469453 -4.16336,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c 0,-4.5102 1.32996,-8.44225 3.98989,-11.79618 3.23815,-4.27888 7.97974,-6.41838 14.2248,-6.4185 l 27.40876,0 1.04083,0 0.6939,0.34694 c 1.96597,0.92531 2.94898,2.3131 2.94904,4.16336"
id="path3502"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 261.59539,-128.45434 c -7e-5,1.27225 -0.46266,2.37091 -1.38779,3.29599 -0.92525,0.9253 -2.02391,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19738,-0.46249 -3.12251,-1.38779 -0.92525,-0.92508 -1.38785,-2.02374 -1.38779,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27208,1.2e-4 2.37074,0.40489 3.29599,1.21431 0.92513,0.80966 1.38772,1.90832 1.38779,3.29599"
id="path3500"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 316.23944,-32.523683 c -1.3e-4,4.510316 -1.33009,8.44237 -3.98989,11.796175 -3.23828,4.279007 -7.97987,6.418507 -14.2248,6.418507 -6.12948,0 -10.81325,-2.081676 -14.05132,-6.245034 -2.77566,-3.469453 -4.16345,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42862,-6.59198 -1.61917,-1.61897 -3.87432,-2.42852 -6.76546,-2.42862 -1.15656,1e-4 -2.1974,-0.46249 -3.12251,-1.38779 -0.92527,-0.92508 -1.38786,-2.02374 -1.38779,-3.29599 -7e-5,-1.27202 0.4047,-2.31286 1.21431,-3.12252 0.92512,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01363,1.2e-4 10.6974,2.08179 14.05133,6.24503 2.77545,3.46957 4.16323,7.45945 4.16336,11.96965 l 0,82.226277"
id="path3489"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 363.27506,-32.523683 c -5e-5,2.775586 0.80949,4.972911 2.42862,6.59198 1.61904,1.619093 3.81636,2.428634 6.59198,2.428625 1.27208,9e-6 2.37075,0.462603 3.29599,1.387785 0.92513,0.925197 1.38773,2.023859 1.38779,3.29599 -6e-5,1.156491 -0.46266,2.197329 -1.38779,3.122517 -0.92524,0.92519 -2.02391,1.387785 -3.29599,1.387785 l -27.40876,0 c -4.51032,0 -8.44237,-1.32996 -11.79617,-3.989883 -4.27902,-3.238158 -6.41852,-7.979753 -6.41851,-14.224799 l 0,-82.226277 c -10e-6,-4.5102 1.32995,-8.44225 3.98988,-11.79618 3.23815,-4.27888 7.97975,-6.41838 14.2248,-6.4185 l 27.40876,0 1.04084,0 0.69389,0.34694 c 1.96598,0.92531 2.94899,2.3131 2.94905,4.16336 -6e-5,1.1566 -0.40483,2.19744 -1.21432,3.12252 -0.80959,0.9253 -1.85043,1.38789 -3.12251,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98989,0.69389 -3.58515,1.3879 -5.37771,4.22129 -5.37766,8.50019 l 0,82.226277"
id="path3510"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 390.68381,-128.45434 c -6e-5,1.27225 -0.46266,2.37091 -1.38778,3.29599 -0.92526,0.9253 -2.02392,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19739,-0.46249 -3.12252,-1.38779 -0.92525,-0.92508 -1.38784,-2.02374 -1.38778,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27207,1.2e-4 2.37073,0.40489 3.29599,1.21431 0.92512,0.80966 1.38772,1.90832 1.38778,3.29599"
id="path3508"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 390.68381,-18.819303 c -6e-5,1.156491 -0.46266,2.197329 -1.38778,3.122517 -0.92526,0.92519 -2.02392,1.387785 -3.29599,1.387785 -1.2722,0 -2.37086,-0.40477 -3.29599,-1.214312 -0.8096,-0.925188 -1.21437,-2.02385 -1.21431,-3.29599 -6e-5,-1.272131 0.40471,-2.370793 1.21431,-3.29599 0.80948,-0.925182 1.90814,-1.387776 3.29599,-1.387785 1.27207,9e-6 2.37073,0.462603 3.29599,1.387785 0.92512,0.925197 1.38772,2.023859 1.38778,3.29599"
id="path3506"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 445.32786,-32.523683 c -1.2e-4,6.129397 -2.0818,10.813168 -6.24503,14.051326 -3.46958,2.775572 -7.45946,4.163356 -11.96965,4.163356 l -27.40876,0 c -1.27221,0 -2.37088,-0.40477 -3.29599,-1.214312 -0.80962,-0.925188 -1.21439,-2.02385 -1.21431,-3.29599 -8e-5,-1.272131 0.40469,-2.370793 1.21431,-3.29599 0.80946,-0.925182 1.90813,-1.387776 3.29599,-1.387785 3.46938,9e-6 6.01365,-1.214302 7.63282,-3.642937 1.04075,-1.50342 1.56117,-3.295974 1.56126,-5.377668 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42863,-6.59198 -1.61916,-1.61897 -3.87431,-2.42852 -6.76545,-2.42862 -1.15657,1e-4 -2.1974,-0.46249 -3.12252,-1.38779 -0.92526,-0.92508 -1.38786,-2.02374 -1.38778,-3.29599 -8e-5,-1.27202 0.40469,-2.31286 1.21431,-3.12252 0.92511,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01362,1.2e-4 10.69739,2.08179 14.05132,6.24503 2.77545,3.46957 4.16324,7.45945 4.16336,11.96965 l 0,82.226277"
id="path3491"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 506.06786,-128.45434 c -6e-5,1.1566 -0.40483,2.19744 -1.21431,3.12252 -0.8096,0.9253 -1.85044,1.38789 -3.12252,1.38778 -1.96608,0.23141 -3.29604,0.46271 -3.98988,0.69389 -3.58516,1.3879 -5.37771,4.22129 -5.37767,8.50019 l 0,82.226277 c -4e-5,4.510316 -1.33,8.44237 -3.98988,11.796175 -3.2382,4.279007 -8.03762,6.418507 -14.39827,6.418507 -6.12941,0 -10.81318,-2.081676 -14.05133,-6.245034 -2.77558,-3.469453 -4.16336,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c 0,-4.5102 1.32996,-8.44225 3.98989,-11.79618 3.23815,-4.27888 7.97974,-6.41838 14.2248,-6.4185 l 27.40875,0 1.04084,0 0.6939,0.34694 c 1.96597,0.92531 2.94898,2.3131 2.94904,4.16336"
id="path3516"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 519.77224,-128.45434 c -7e-5,1.27225 -0.46266,2.37091 -1.38779,3.29599 -0.92525,0.9253 -2.02392,1.38789 -3.29599,1.38779 -1.15655,1e-4 -2.19738,-0.46249 -3.12251,-1.38779 -0.92525,-0.92508 -1.38785,-2.02374 -1.38779,-3.29599 -6e-5,-1.27202 0.40471,-2.31286 1.21431,-3.12252 0.92513,-0.92507 2.02379,-1.38766 3.29599,-1.38778 1.27207,1.2e-4 2.37074,0.40489 3.29599,1.21431 0.92513,0.80966 1.38772,1.90832 1.38779,3.29599"
id="path3514"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
<path
d="m 574.41628,-32.523683 c -1.2e-4,4.510316 -1.33008,8.44237 -3.98988,11.796175 -3.23828,4.279007 -7.97988,6.418507 -14.2248,6.418507 -6.12948,0 -10.81325,-2.081676 -14.05132,-6.245034 -2.77566,-3.469453 -4.16345,-7.459332 -4.16336,-11.969648 l 0,-82.226277 c -9e-5,-2.77547 -0.80963,-4.97279 -2.42862,-6.59198 -1.61917,-1.61897 -3.87432,-2.42852 -6.76546,-2.42862 -1.15656,1e-4 -2.1974,-0.46249 -3.12251,-1.38779 -0.92527,-0.92508 -1.38786,-2.02374 -1.38779,-3.29599 -7e-5,-1.27202 0.4047,-2.31286 1.21431,-3.12252 0.92512,-0.92507 2.02378,-1.38766 3.29599,-1.38778 l 27.40876,0 c 6.01363,1.2e-4 10.6974,2.08179 14.05133,6.24503 2.77545,3.46957 4.16323,7.45945 4.16335,11.96965 l 0,82.226277"
id="path3493"
style="font-size:173.47315979px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;stroke:none;font-family:Syndrome BRK;-inkscape-font-specification:Syndrome BRK" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

1
mixer/icons/icon-small.svg Symbolic link
View File

@ -0,0 +1 @@
icon-large.svg

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Non Mixer
Comment=Modular Digital Audio Workstation - Mixer
Comment[fr]=Station de travail audio-numérique modulaire - Mixeur
Exec=@BIN_PATH@/non-mixer
Terminal=false
Type=Application
Icon=non-mixer
Categories=AudioVideo;Audio;

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

177
mixer/src/AUX_Module.C Normal file
View File

@ -0,0 +1,177 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#include <FL/fl_draw.H>
#include "AUX_Module.H"
#include "dsp.h"
/* The purpose of this module is to provide auxiliary outputs, with
* gain. This allows one to create a 'send' type topology without
* having to use an extra strip to control the 'send' gain. */
AUX_Module::AUX_Module ( ) : JACK_Module ( false )
{
is_default( false );
{
Port p( this, Port::INPUT, Port::CONTROL, "Gain (dB)" );
p.hints.type = Port::Hints::LINEAR;
p.hints.ranged = true;
p.hints.minimum = -70.0f;
p.hints.maximum = 6.0f;
p.hints.default_value = 0.0f;
p.connect_to( new float );
p.control_value( p.hints.default_value );
add_port( p );
}
log_create();
color( FL_DARK1 );
smoothing.sample_rate( sample_rate() );
}
AUX_Module::~AUX_Module ( )
{
configure_outputs(0);
delete (float*)control_input[0].buffer();
}
void
AUX_Module::number ( int n )
{
JACK_Module::number(n);
char s[10];
snprintf( s, sizeof(s), "aux-%c", 'A' + n );
prefix( s );
snprintf( s, sizeof(s), "Aux (%c)", 'A' + n );
copy_label( s );
}
void
AUX_Module::handle_sample_rate_change ( nframes_t n )
{
smoothing.sample_rate( n );
}
void
AUX_Module::process ( nframes_t nframes )
{
if ( unlikely( bypass() ) )
{
for ( unsigned int i = 0; i < audio_input.size(); ++i )
{
if ( audio_input[i].connected() )
buffer_fill_with_silence( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), nframes );
}
}
else
{
float gt = DB_CO( control_input[0].control_value() );
sample_t gainbuf[nframes];
bool use_gainbuf = smoothing.apply( gainbuf, nframes, gt );
if ( unlikely( use_gainbuf ) )
{
for ( unsigned int i = 0; i < audio_input.size(); ++i )
{
if ( audio_input[i].connected() )
buffer_copy_and_apply_gain_buffer( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), gainbuf, nframes );
}
}
else
{
for ( unsigned int i = 0; i < audio_input.size(); ++i )
{
if ( audio_input[i].connected() )
buffer_copy_and_apply_gain( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), nframes, gt );
}
}
}
}
void
AUX_Module::draw ( void )
{
int W = 5;
child(0)->size( w() - W, h() );
Module::draw_box(x(),y(),w() - W,h());
Module::draw_label(x(),y(),w() - W,h());
Module *m = this;
fl_color( fl_darker( FL_FOREGROUND_COLOR ) );
int spacing, offset;
spacing = h() / m->ninputs();
offset = spacing / 2;
for ( int i = m->ninputs(); i--; )
{
int xi = offset + ( spacing * i );
fl_rectf( m->x() + m->w() - W, m->y() + xi, W, 2 );
}
}
bool
AUX_Module::configure_outputs ( int n )
{
int on = audio_output.size();
if ( n > on )
{
for ( int i = on; i < n; ++i )
{
add_port( Port( this, Port::OUTPUT, Port::AUDIO ) );
}
}
else
{
for ( int i = on; i > n; --i )
{
audio_output.back().disconnect();
audio_output.pop_back();
}
}
return true;
}
bool
AUX_Module::configure_inputs ( int n )
{
bool b = JACK_Module::configure_inputs( n );
if ( b )
{
return configure_outputs( n );
}
return false;
}

53
mixer/src/AUX_Module.H Normal file
View File

@ -0,0 +1,53 @@
/*******************************************************************************/
/* Copyright (C) 2013 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include "JACK_Module.H"
#include "dsp.h"
class AUX_Module : public JACK_Module
{
Value_Smoothing_Filter smoothing;
public:
virtual void number ( int v );
virtual const char *name ( void ) const { return "AUX"; }
int can_support_inputs ( int n ) { return n > 0 ? n : -1; }
virtual bool configure_outputs ( int n );
virtual bool configure_inputs ( int n );
AUX_Module ( );
virtual ~AUX_Module ( );
LOG_CREATE_FUNC( AUX_Module );
virtual void handle_sample_rate_change ( nframes_t n );
protected:
virtual void draw ( void );
virtual void process ( nframes_t nframes );
};

1021
mixer/src/Chain.C Normal file

File diff suppressed because it is too large Load Diff

150
mixer/src/Chain.H Normal file
View File

@ -0,0 +1,150 @@
/*******************************************************************************/
/* Copyright (C) 2009 Jonathan Moore Liles */
/* */
/* This program is free software; you can redistribute it and/or modify it */
/* under the terms of the GNU General Public License as published by the */
/* Free Software Foundation; either version 2 of the License, or (at your */
/* option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, but WITHOUT */
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */
/* more details. */
/* */
/* You should have received a copy of the GNU General Public License along */
/* with This program; see the file COPYING. If not,write to the Free Software */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/*******************************************************************************/
#pragma once
#include <FL/Fl.H>
#include <FL/Fl_Pack.H>
#include <FL/Fl_Button.H>
#include "Module.H"
#include "JACK/Port.H"
#include <vector>
#include <list>
#include "Loggable.H"
#include "Group.H"
class Mixer_Strip;
class Fl_Flowpack;
class Fl_Flip_Button;
class Controller_Module;
class Chain : public Fl_Group, public Loggable {
Fl_Flip_Button *tab_button;
Fl_Pack *controls_pack;
Fl_Group *chain_tab;
Fl_Group *control_tab;
Fl_Pack *modules_pack;
Mixer_Strip *_strip;
const char *_name;
std::list<Module*> process_queue;
std::vector <Module::Port> scratch_port;
Fl_Callback *_configure_outputs_callback;
void *_configure_outputs_userdata;
bool _deleting;
private:
static void snapshot ( void *v );
void snapshot ( void );
void cb_handle(Fl_Widget*);
static void cb_handle(Fl_Widget*, void*);
void draw_connections ( Module *m );
void build_process_queue ( void );
void add_to_process_queue ( Module *m );
static void update_connection_status ( void *v );
void update_connection_status ( void );
protected:
void get ( Log_Entry &e ) const;
void set ( Log_Entry &e );
public:
void auto_connect_outputs ( void );
void auto_disconnect_outputs ( void );
void get_output_ports ( std::list<std::string> &sl);
void port_connect ( jack_port_id_t a, jack_port_id_t b, int connect );
void buffer_size ( nframes_t nframes );
int sample_rate_change ( nframes_t nframes );
void process ( nframes_t );
Chain ( int X, int Y, int W, int H, const char *L = 0 );
Chain ( );
virtual ~Chain ( );
void update ( void );
void draw ( void );
void resize ( int X, int Y, int W, int H );
Mixer_Strip *strip ( void ) const { return _strip; }
void strip ( Mixer_Strip *v );
const char *name ( void ) const { return _name; }
void name ( const char *name );
void send_feedback ( bool force );
void schedule_feedback ( void );
int get_module_instance_number ( Module *m );
void configure_ports ( void );
int required_buffers ( void );
bool can_support_input_channels ( int n );
int modules ( void ) const { return modules_pack ? modules_pack->children() : 0; }
Module *module ( int n ) const { return (Module*)modules_pack->child( n ); }
void remove ( Controller_Module *m );
void remove ( Module *m );
bool add ( Module *m );
bool add ( Controller_Module *m );
bool insert ( Module *m, Module *n );
void add_control ( Controller_Module *m );
bool do_export ( const char *filename );
void initialize_with_default ( void );
bool can_configure_outputs ( Module *m, int n ) const;
void configure_outputs_callback ( Fl_Callback *cb, void *v )
{
_configure_outputs_callback = cb;
_configure_outputs_userdata = v;
}
void set_latency ( JACK::Port::direction_e );
Fl_Callback * configure_outputs_callback ( void ) const { return _configure_outputs_callback; }
virtual void log_children ( void ) const;
static unsigned int maximum_name_length ( void );
Group *client ( void );
void freeze_ports ( void );
void thaw_ports ( void );
// void client ( Client * );
LOG_CREATE_FUNC( Chain );
};

Some files were not shown because too many files have changed in this diff Show More