From 43f3482adf5eee657e5ba922733dfff6600c4e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A5kan=20Mattsson?= Date: Wed, 3 Feb 2010 08:59:06 +0000 Subject: OTP-8058 The GUI parts are rewritten to use wxWidgets. Thanks Olle Mattsson! For the time being it is still possible to use the old GS based version of the tool, but it is deprecated. The wxWidgets based version is started by default. A new tutorial has been added to the documentation. It is based on Jayson Vantuyl's article http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.htm l. The functions et:trace_me/4 and et:trace_me/5 has been introduced in order to replace the deprecated functions et:report_event/4 and et:report_event/5. Hopefully the new names makes it a little more obvious what the intended usage of the functions are. A print function has been added to the GUI, in order to enable printing of sequence charts. More functionality for hiding unwanted events has been added to the GUI. The max_events, hide_unknown and display_mode configuration parameters to et_viewer is not used any more. Now the event cache in the Viewer only contains those events that actually are displayed in the GUI. --- lib/et/doc/src/book.gif | Bin 1081 -> 0 bytes lib/et/doc/src/coffee_order.png | Bin 0 -> 23692 bytes lib/et/doc/src/et.xml | 67 +- lib/et/doc/src/et_architecture.xml | 554 -- lib/et/doc/src/et_collector.xml | 19 +- lib/et/doc/src/et_desc.xmlsrc | 683 ++ lib/et/doc/src/et_examples.xml | 311 - lib/et/doc/src/et_examples.xmlsrc | 383 ++ lib/et/doc/src/et_intro.xml | 82 +- lib/et/doc/src/et_selector.xml | 108 +- lib/et/doc/src/et_tutorial.xmlsrc | 273 + lib/et/doc/src/et_viewer.xml | 9 +- lib/et/doc/src/files.mk | 42 +- lib/et/doc/src/live_trans.gif | Bin 8691 -> 0 bytes lib/et/doc/src/live_trans.png | Bin 0 -> 19999 bytes lib/et/doc/src/live_trans.ps | 1559 ----- lib/et/doc/src/make.dep | 53 - lib/et/doc/src/megaco_collector.gif | Bin 68430 -> 0 bytes lib/et/doc/src/megaco_collector.png | Bin 0 -> 37915 bytes lib/et/doc/src/megaco_collector.ps | 3247 ---------- lib/et/doc/src/megaco_filter.gif | Bin 8827 -> 0 bytes lib/et/doc/src/megaco_filter.png | Bin 0 -> 19067 bytes lib/et/doc/src/megaco_filter.ps | 1733 ----- lib/et/doc/src/megaco_tracer.gif | Bin 12400 -> 0 bytes lib/et/doc/src/megaco_tracer.png | Bin 0 -> 46696 bytes lib/et/doc/src/megaco_tracer.ps | 2508 -------- lib/et/doc/src/note.gif | Bin 1539 -> 0 bytes lib/et/doc/src/notes.gif | Bin 2005 -> 0 bytes lib/et/doc/src/notes.xml | 60 +- lib/et/doc/src/part.xml | 9 +- lib/et/doc/src/ref_man.gif | Bin 1530 -> 0 bytes lib/et/doc/src/sim_trans.gif | Bin 20208 -> 0 bytes lib/et/doc/src/sim_trans.png | Bin 0 -> 19026 bytes lib/et/doc/src/sim_trans.ps | 6595 -------------------- .../src/sim_trans_contents_viewer_collector.gif | Bin 11607 -> 0 bytes .../src/sim_trans_contents_viewer_collector.png | Bin 0 -> 13361 bytes .../doc/src/sim_trans_contents_viewer_collector.ps | 1407 ----- .../src/sim_trans_contents_viewer_mgr_actors.gif | Bin 7531 -> 0 bytes .../src/sim_trans_contents_viewer_mgr_actors.png | Bin 0 -> 15235 bytes .../src/sim_trans_contents_viewer_mgr_actors.ps | 1371 ---- lib/et/doc/src/sim_trans_mgr_actors.gif | Bin 9118 -> 0 bytes lib/et/doc/src/sim_trans_mgr_actors.png | Bin 0 -> 18936 bytes lib/et/doc/src/sim_trans_mgr_actors.ps | 1705 ----- lib/et/doc/src/sim_trans_move_actor.gif | Bin 8965 -> 0 bytes lib/et/doc/src/sim_trans_move_actor.png | Bin 0 -> 19026 bytes lib/et/doc/src/sim_trans_move_actor.ps | 6403 ------------------- lib/et/doc/src/sim_trans_write_lock.gif | Bin 10871 -> 0 bytes lib/et/doc/src/sim_trans_write_lock.png | Bin 0 -> 13425 bytes lib/et/doc/src/sim_trans_write_lock.ps | 1287 ---- lib/et/doc/src/user_guide.gif | Bin 1581 -> 0 bytes lib/et/doc/src/warning.gif | Bin 1498 -> 0 bytes lib/et/examples/Makefile | 14 +- lib/et/examples/et_demo.erl | 103 +- lib/et/examples/et_display_demo.erl | 32 + lib/et/examples/et_trace_demo.erl | 38 + lib/et/src/Makefile | 17 +- lib/et/src/et.app.src | 17 +- lib/et/src/et.erl | 38 +- lib/et/src/et_collector.erl | 330 +- lib/et/src/et_contents_viewer.erl | 591 -- lib/et/src/et_gs_contents_viewer.erl | 591 ++ lib/et/src/et_gs_viewer.erl | 1483 +++++ lib/et/src/et_internal.hrl | 13 +- lib/et/src/et_selector.erl | 76 +- lib/et/src/et_viewer.erl | 1492 +---- lib/et/src/et_wx_contents_viewer.erl | 700 +++ lib/et/src/et_wx_viewer.erl | 2124 +++++++ lib/et/src/modules.mk | 17 +- lib/et/test/Makefile | 81 + lib/et/test/README | 30 + lib/et/test/et.spec | 2 + lib/et/test/et_test_lib.erl | 329 + lib/et/test/et_test_lib.hrl | 90 + lib/et/test/et_wx_SUITE.erl | 100 + lib/et/test/ett | 55 + lib/et/test/ett.erl | 154 + lib/et/vsn.mk | 15 +- 77 files changed, 7873 insertions(+), 31127 deletions(-) delete mode 100644 lib/et/doc/src/book.gif create mode 100644 lib/et/doc/src/coffee_order.png delete mode 100644 lib/et/doc/src/et_architecture.xml create mode 100644 lib/et/doc/src/et_desc.xmlsrc delete mode 100644 lib/et/doc/src/et_examples.xml create mode 100644 lib/et/doc/src/et_examples.xmlsrc create mode 100644 lib/et/doc/src/et_tutorial.xmlsrc delete mode 100644 lib/et/doc/src/live_trans.gif create mode 100644 lib/et/doc/src/live_trans.png delete mode 100644 lib/et/doc/src/live_trans.ps delete mode 100644 lib/et/doc/src/make.dep delete mode 100644 lib/et/doc/src/megaco_collector.gif create mode 100644 lib/et/doc/src/megaco_collector.png delete mode 100644 lib/et/doc/src/megaco_collector.ps delete mode 100644 lib/et/doc/src/megaco_filter.gif create mode 100644 lib/et/doc/src/megaco_filter.png delete mode 100644 lib/et/doc/src/megaco_filter.ps delete mode 100644 lib/et/doc/src/megaco_tracer.gif create mode 100644 lib/et/doc/src/megaco_tracer.png delete mode 100644 lib/et/doc/src/megaco_tracer.ps delete mode 100644 lib/et/doc/src/note.gif delete mode 100644 lib/et/doc/src/notes.gif delete mode 100644 lib/et/doc/src/ref_man.gif delete mode 100644 lib/et/doc/src/sim_trans.gif create mode 100644 lib/et/doc/src/sim_trans.png delete mode 100644 lib/et/doc/src/sim_trans.ps delete mode 100644 lib/et/doc/src/sim_trans_contents_viewer_collector.gif create mode 100644 lib/et/doc/src/sim_trans_contents_viewer_collector.png delete mode 100644 lib/et/doc/src/sim_trans_contents_viewer_collector.ps delete mode 100644 lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif create mode 100644 lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png delete mode 100644 lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps delete mode 100644 lib/et/doc/src/sim_trans_mgr_actors.gif create mode 100644 lib/et/doc/src/sim_trans_mgr_actors.png delete mode 100644 lib/et/doc/src/sim_trans_mgr_actors.ps delete mode 100644 lib/et/doc/src/sim_trans_move_actor.gif create mode 100644 lib/et/doc/src/sim_trans_move_actor.png delete mode 100644 lib/et/doc/src/sim_trans_move_actor.ps delete mode 100644 lib/et/doc/src/sim_trans_write_lock.gif create mode 100644 lib/et/doc/src/sim_trans_write_lock.png delete mode 100644 lib/et/doc/src/sim_trans_write_lock.ps delete mode 100644 lib/et/doc/src/user_guide.gif delete mode 100644 lib/et/doc/src/warning.gif create mode 100644 lib/et/examples/et_display_demo.erl create mode 100644 lib/et/examples/et_trace_demo.erl delete mode 100644 lib/et/src/et_contents_viewer.erl create mode 100644 lib/et/src/et_gs_contents_viewer.erl create mode 100644 lib/et/src/et_gs_viewer.erl create mode 100644 lib/et/src/et_wx_contents_viewer.erl create mode 100644 lib/et/src/et_wx_viewer.erl create mode 100644 lib/et/test/Makefile create mode 100644 lib/et/test/README create mode 100644 lib/et/test/et.spec create mode 100644 lib/et/test/et_test_lib.erl create mode 100644 lib/et/test/et_test_lib.hrl create mode 100644 lib/et/test/et_wx_SUITE.erl create mode 100755 lib/et/test/ett create mode 100644 lib/et/test/ett.erl (limited to 'lib') diff --git a/lib/et/doc/src/book.gif b/lib/et/doc/src/book.gif deleted file mode 100644 index 94b3868792..0000000000 Binary files a/lib/et/doc/src/book.gif and /dev/null differ diff --git a/lib/et/doc/src/coffee_order.png b/lib/et/doc/src/coffee_order.png new file mode 100644 index 0000000000..b3f17e7ead Binary files /dev/null and b/lib/et/doc/src/coffee_order.png differ diff --git a/lib/et/doc/src/et.xml b/lib/et/doc/src/et.xml index 27cc47a4b4..9b170dd7d9 100644 --- a/lib/et/doc/src/et.xml +++ b/lib/et/doc/src/et.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + et @@ -37,30 +37,28 @@ - report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced - report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced - phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced - phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced - Reports an event, such as a message + trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced + A function that is intended to be traced. DetailLevel = integer(X) when X =< 0, X >= 100 From = actor() To = actor() - FromTo = actor() Label = atom() | string() | term() Contents = [{Key, Value}] | term() - actor() = term() + actor() = term() -

Reports an event, such as a message.

-

These functions are intended to be invoked at strategic places - in user applications in order to enable simplified tracing. - The functions are extremely light weight as they do nothing - besides returning an atom. These functions are designed for - being traced. The global tracing mechanism in et_collector - defaults to set its trace pattern to these functions.

-

The label is intended to provide a brief summary of the event. - A simple tag would do.

+

A function that is intended to be traced.

+

This function is intended to be invoked at strategic places + in user applications in order to enable simplified + tracing. The functions are extremely light weight as they do + nothing besides returning an atom. The functions are designed + for being traced. The global tracing mechanism in + et_collector defaults to set its trace pattern to these + functions.

+

The label is intended to provide a brief summary of the + event. It is preferred to use an atom but a string would also + do.

The contents can be any term but in order to simplify post processing of the traced events, a plain list of {Key, Value} tuples is preferred.

@@ -68,6 +66,37 @@ Other events (termed actions) may be undirected and only have one actor.

+ + + trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced + A function that is intended to be traced. + +

Invokes et:trace_me/5 with both From and To + set to FromTo.

+
+
+ + + phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced + phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced + Send a signal to the outer space + +

These functions sends a signal to the outer space and the + caller hopes that someone is listening. In other words, they + invoke et:trace_me/4 and et:trace_me/5 + respectively.

+
+
+ + report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced + report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced + Deprecated functions + +

Deprecated functions which for the time being are kept for + backwards compatibility. Invokes et:trace_me/4 and + et:trace_me/5 respectively.

+
+
diff --git a/lib/et/doc/src/et_architecture.xml b/lib/et/doc/src/et_architecture.xml deleted file mode 100644 index 44e262db96..0000000000 --- a/lib/et/doc/src/et_architecture.xml +++ /dev/null @@ -1,554 +0,0 @@ - - - - -
- - 20022009 - Ericsson AB. All Rights Reserved. - - - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. - - - - Usage - Håkan Mattsson - Håkan Mattsson - - Håkan Mattsson - - - %VSN% - et_architecture.xml -
- -
- Overview -

The two major components of the Event Tracer (ET) - tool is a graphical sequence chart viewer (et_viewer) - and its backing storage (et_collector). One collector - may be used as backing storage for several simultaneous - viewers where each one may display a different view of - the same trace data.

-

The interface between the collector and its viewers - is public in order to enable other types of viewers. - However in the following text we will focus on usage - of the et_viewer.

-

The main start function is et_viewer:start/1. - It will by default start both an et_collector and - an et_viewer:

-

- {ok, Viewer} = et_viewer:start([]). - {ok,<0.31.0>} - ]]> -

A viewer gets trace events from its collector - by polling it regularly for more events to display. - Trace events are for example reported to the collector with - et_collector:report_event/6:

- Collector = et_viewer:get_collector_pid(Viewer). - <0.30.0> - 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer, - "Start outer transaction"), - 3> et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid, - "New transaction id is 4711"), - 3> et_collector:report_event(Collector, 20, my_shell, mnesia_locker, try_write_lock, - "Acquire write lock for {my_tab, key}"), - 3> et_collector:report_event(Collector, 10, mnesia_locker, my_shell, granted, - "You got the write lock for {my_tab, key}"), - 3> et_collector:report_event(Collector, 60, my_shell, do_commit, - "Perform transaction commit"), - 3> et_collector:report_event(Collector, 40, my_shell, mnesia_locker, release_tid, - "Release all locks for transaction 4711"), - 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction, - "End of outer transaction"), - 3> et_collector:report_event(Collector, 20, my_shell, end_outer, - "Transaction returned {atomic, ok}"). - {ok,{table_handle,<0.30.0>,11,trace_ts,#Fun}} - 4> - ]]> -

This is a simulation of the process events caused by a Mnesia - transaction that writes a record in a local table:

- - mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end). - -

At this stage when we have a couple of events, it is time to - show how it looks like in the graphical interface of - et_viewer:

-

- - A simulated Mnesia transaction which writes one record - -

In the sequence chart, the actors (which symbolically has performed the - traced event) are shown as named vertical bars. The order of the - actors may be altered by dragging (hold mouse button 1 pressed during - the operation) the name tag of an actor and drop it elsewhere:

- - Two actors has switched places - -

An event may be an action performed by one single actor (blue - text label) or it may involve two actors and is then depicted as an - arrow directed from one actor to another (red text label). Details of - an event can be shown by clicking (press and release the mouse button 1) - on the event label text or on the arrow:

-

- - Details of a write lock message - -
- -
- Filters and dictionary -

The Event Tracer (ET) uses named filters in various - contexts. An Event Trace filter is an Erlang fun - that takes some trace data as input and returns a possibly - modified version of it: -

-

- - filter(TraceData) -> true | {true, NewEvent} | false - - TraceData = NewEvent | term() - NewEvent = record(event) - -

The interface of the filter function is the same as the the - filter functions for the good old lists:zf/2. If the filter - returns false it means that the TraceData should be - dropped. {true, NewEvent} means that the TraceData - should be replaced with NewEvent. And true means that the - TraceData data already is an event record and that it - should be kept as it is. -

-

The first filter that the trace data is exposed for is - the collector filter. When a trace event is reported with - et_collector:report/2 (or et_collector:report_event/5,6) - the first thing that - happens, is that a message is sent to the collector process - to fetch a handle that contains some useful stuff, such as - the collector filter fun and an ets table identifier. - Then the collector filter fun is applied and if it returns - true (or {true, NewEvent}), the event will - be stored in an ets table. As an optimization, subsequent - calls to et_collector:report-functions can use the handle - directly instead of the collector pid. -

-

The collector filter (that is the filter named - collector) is a little bit special, as its input - may be any Erlang term and is not limited to take an event - record as the other filter functions. -

-

The collector manages a key/value based dictionary, where - the filters are stored. Updates of the dictionary is - propagated to all subscribing processes. When a viewer is - started it is registered as a subscriber of dictionary updates. -

-

In a viewer there is only one filter that is active - and all trace events that the viewer gets from the - collector will pass thru that filter. By writing clever - filters it is possible to customize how the events - looks like in the viewer. The following filter replaces - the actor names mnesia_tm and mnesia_locker - and leaves everything else in the record as it was: -

-

- -

If we now add the filter to the running collector: -

-

- Fun = fun(E) -> et_demo:mgr_actors(E) end. - #Fun - 5> et_collector:dict_insert(Collector, {filter, mgr_actors}, Fun). - ok - 6> - ]]> -

you will see that the Filter menu in all viewers have - got a new entry called mgr_actors. Select it, and a new - viewer window will pop up:

-

- - The same trace data in a different view - -

In order to see the nitty gritty details of an event - you may click on the event in order to start a contents - viewer for that event. In the contents viewer there is - also a filter menu in order to enable inspection of the - event from other views than the one selected in the viewer. - A click on the new_tid event will cause a contents - viewer window to pop up, showing the event in the - mgr_actors view:

-

- - The trace event in the mgr_actors view - -

Select the collector entry in the Filters - menu and a new contents viewer window will pop up - showing the same trace event in the collectors view:

-

- - The same trace event in the collectors view - -
- -
- Trace clients -

As you have seen it is possible to use the - et_collector:report-functions explicitly. By using those functions - you can write your own trace client that reads trace data from any - source stored in any format and just feed the collector with it. You - may replace the default collector filter with a filter that converts - new exciting trace data formats to event-records or you may convert it - to an event-record before you invoke et_collector:report/2 and - then rely on the default collector filter to handle the new - format.

-

There are also existing functions in the API that reads from - various sources and calls et_collector:report/2:

- - -

The trace events that are hosted by the collector may be - stored to file and later be loaded by selecting save - and load entries in the viewers File-menu or - via the et_collector API.

-
- -

It is also possible to perform live tracing of a running - system by making use of the built-in trace support in - the Erlang emulator. These Erlang traces can be directed - to files or to ports. See the reference manual for - erlang:trace/4, erlang:trace_pattern/3, - dbg and ttb for more info.

-

There are also corresponding trace client types that can - read the Erlang trace data format from such files or ports. - The et_collector:start_trace_client/3 function makes - use of these Erlang trace clients and redirects the trace - data to the collector.

-

The default collector filter converts the Erlang trace data - format into event-records.If you want to perform this - differently you can of course write your own collector - filter from scratch. But it may probably save you some - efforts if you first apply the default filter in - et_selector:parse_event/2 before you apply your - own conversions of its output.

-
-
-
- -
- Global tracing and phone home -

Setting up an Erlang tracer on a set of nodes and connecting - trace clients to the ports of these tracers is not intuitive. In order - to make this it easier the Event Tracer as a notion of global - tracing. When used, the et_collector process will monitor - Erlang nodes and when one connects, an Erlang tracer will - automatically be started on the other node. A corresponding trace - client will also be started on the collector node in order to - automatically forward the trace events to the collector. Set the - boolean parameter trace_global to true for either the - et_collector or et_viewer in order to activate the - global tracing. There is no restriction on how many concurrent - (anonymous) collectors you can have, but you can only have one global - collector as its name is registered in global.

-

In order to further simplify the tracing you can make use of the - et:report_event/4,5 (or its equivalents - et:phone_home/4,5 :-). These functions are intended to be - invoked from other applications when there are interesting events, - in your application that needs to be highlighted. The functions are - extremely light weight as they do nothing besides returning an atom. - These functions are - specifically designed to be traced for. As the caller explicitly - provides the values for the event-record fields, the default collector - filter is able to automatically provide a customized event-record - without any user defined filter functions.

-

In normal operation the et:report_event/4,5 calls are - almost for free. When tracing is needed you can either activate - tracing on these functions explicitly. Or you can combine the usage of - trace_global with the usage of trace_pattern. When set, - the trace_pattern will automatically be activated on all - connected nodes.

-

One nice thing with the trace_pattern is that it provides - a very simple way of minimizing the amount of generated trace data by - allowing you to explicitly control the detail level of the tracing. As - you may have seen the et_viewer have a slider called - "Detail Level" that allows you to control the detail level of the - trace events displayed in the viewer. On the other hand if you set a - low detail level in the trace_pattern, lots of the trace data - will never be generated and thus not sent over the socket to the trace - client and stored in the collector.

-
- -
- Viewer window -

Almost all functionality available in the et_viewer is - also available via shortcuts. Which key that has the same - effect as selecting a menu entry is shown enclosed in - parentheses. For example pressing the key r is - equivalent to selecting the menu entry - Viewer->Refresh. -

-

File menu:

- - -

Close Collector and all Viewers - Close the collector - and all viewers connected to that collector.

-
- -

Close other Viewers, but keep Collector - Keep this viewer - and its collector, but close all other viewers connected - to this collector.

-
- -

Close this Viewer, but keep Collector - Close this viewer, - but all other viewers and the collector.

-
- -

Save Collector to file - Save all events stored in the - collector to file.

-
- -

Load Collector from file - Load the collector with - events from a file.

-
-
-

Viewer menu:

- - -

First - Scroll this viewer to the first collector - event.

-
- -

Prev - Scroll this viewer one "page" backwards. - Normally this means that the first event displayed in the - viewer will be the last one and the previous max_events - events will be read from the collector.

-
- -

Next - Scroll this viewer one "page" forward. - Normally this means that the last event displayed in the - viewer will be the first one and max_events more - events will be read from the collector.

-
- -

Last - Scroll this viewer to the last collector event.

-
- -

Refresh - Clear this viewer and re-read its events - from the collector.

-
- -

Up 5 - Scroll 5 events backwards.

-
- -

Down 5 - Scroll 5 events forward.

-
- -

Abort search. Display all. - Switch the display mode to - show all events regardless of any ongoing searches. - Abort the searches.

-
-
-

Collector menu:

- - -

First - Scroll all viewers to the first collector - event.

-
- -

Prev - Scroll all viewers one "page" backwards. - Normally this means that the first event displayed in the - viewer will be the last one and the previous max_events - events will be read from the collector.

-
- -

Next - Scroll all viewers one "page" forward. - Normally this means that the last event displayed in the - viewer will be the first one and max_events more - events will be read from the collector.

-
- -

Last - Scroll all viewers to the last collector event.

-
- -

Refresh - Clear all viewers and re-read their - events from the collector.

-
-
-

Filters menu:

- - -

ActiveFilter (=) - Start a new viewer window with the - same active filter and scale as the current one.

-
- -

ActiveFilter (+) - Start a new viewer window with - the same active filter but a larger scale than the - current one.

-
- -

ActiveFilter (-) - Start a new viewer window with - the same active filter but a smaller scale than the - current one.

-
- -

collector (0) - Start a new viewer with the collector - filter as active filter.

-
- -

AnotherFilter (2) - If more filters are inserted into - the dictionary, these will turn up here as entries - in the Filters menu. The second filter will be - number 2, the next one number 3 etc. The names are sorted.

-
-
-

Slider and radio buttons:

- - -

Freeze - When true, this means that the viewer - will not read more events from the collector - until set to false.

-
- -

Hide From=To - When true, this means that the viewer - will hide all events where the from-actor equals - to its to-actor.

-
- -

Hide Unknown - When true, this means that the viewer - will hide all events where either of the from-actor or - to-actor is UNKNOWN.

-
- -

Detail level - This slider controls the resolution - of the viewer. Only events with a detail level smaller - than the selected one (default=100=max) are displayed.

-
-
-

Other features:

- - -

Display details of an event - Click on the event name - and a new window will pop up, displaying the contents - of an event.

-
- -

Toggle actor search - Normally the viewer will be in a - display mode where all events are shown. By clicking - on an actor name the tool will switch display mode - to only show events with selected actors. -

-

Click on an actor and only events with that actor - will be displayed. Click on another actor to include - that actor to the selected ones. Clicking on an already - selected actor will remove it from the collections of - selected actors. When the collection of selected actors - becomes empty the normal mode where all actors are shown - will be entered again.

-

Abort actor search with the a key or with the - Viewer->Abort search menu choice. -

-
- -

Move actor - Drag and drop an actor by first clicking on - the actor name, keeping the button pressed while moving - the cursor to a new location and release the button where - the actor should be moved to.

-
-
-
- -
- Configuration -

The event-records in the ets-table are ordered by their timestamp. - Which timestamp that should be used is controlled via the - event_order parameter. Default is trace_ts which means - the time when the trace data was generated. event_ts means - the time when the trace data was parsed (transformed into an - event-record).

-
- -
- Contents viewer window -

File menu:

- - -

Close - Close this window.

-
- -

Save - Save the contents of this window to file.

-
-
-

Filters menu:

- - -

ActiveFilter - Start a new contents viewer window - with the same active filter.

-
- -

AnotherFilter (2) - If more filters are inserted into - the dictionary, these will turn up here as entries - in the Filters menu. The second filter will be - number 2, the next one number 3 etc. The names are sorted.

-
-
-

Hide menu:

- - -

Hide actor in viewer - Known actors are shown as a - named vertical bars in the viewer window. By hiding the - actor, its vertical bar will be removed and the viewer - will be refreshed.

-

Hiding the actor is only useful if the max_actors - threshold has been reached, as it then will imply that - the "hidden" actor will be displayed as if it were "UNKNOWN". - If the max_actors threshold not have been reached, - the actor will re-appear as a vertical bar in the viewer. -

-
- -

Show actor in viewer - This implies that the actor - will be added as a known actor in the viewer with - its own vertical bar.

-
-
-

Search menu:

- - -

Forward from this event - Set this event to be the first - event in the viewer and change its display mode to be - enter forward search mode. The actor of this event - (from, to or both) will be added to the list of selected - actors. -

-
- -

Reverse from this event - Set this event to be the first - event in the viewer and change its display mode to be - enter reverse search mode. The actor of this event - (from, to or both) will be added to the list of selected - actors. Observe, that the events will be shown in reverse - order. -

-
- -

Abort search. Display all - Switch the display mode - of the viewer to show all events regardless of any - ongoing searches. Abort the searches.

-
-
-
-
- diff --git a/lib/et/doc/src/et_collector.xml b/lib/et/doc/src/et_collector.xml index 01ca7caa5b..88c478c89a 100644 --- a/lib/et/doc/src/et_collector.xml +++ b/lib/et/doc/src/et_collector.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + et_collector @@ -84,11 +84,12 @@ dictionary updates will be propagated to the subscriber processes matching the pattern {{subscriber, '_'}, '_'} where the first '_' is interpreted as a pid().

-

In global trace mode, the collector will automatically start - tracing on all connected Erlang nodes. When a node connects, a port - tracer will be started on that node and a corresponding trace - client on the collector node. By default the global trace pattern - is 'max'.

+ +

In global trace mode, the collector will automatically + start tracing on all connected Erlang nodes. When a node + connects, a port tracer will be started on that node and a + corresponding trace client on the collector node.

+

Default values:

parent_pid - self(). @@ -349,7 +350,7 @@

Iterate over the currently stored events.

-

Iterates over the currently stored eventsand applies +

Iterates over the currently stored events and applies a function for each event. The iteration may be performed forwards or backwards and may be limited to a maximum number of events (abs(Limit)).

diff --git a/lib/et/doc/src/et_desc.xmlsrc b/lib/et/doc/src/et_desc.xmlsrc new file mode 100644 index 0000000000..c02517ae01 --- /dev/null +++ b/lib/et/doc/src/et_desc.xmlsrc @@ -0,0 +1,683 @@ + + + + +
+ + 20022010 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + Description + Håkan Mattsson + Håkan Mattsson + + Håkan Mattsson + + + %VSN% + et_desc.xml +
+ +
+ Overview + +

The two major components of the Event Tracer (ET) tool + is a graphical sequence chart viewer (et_viewer) and its + backing storage (et_collector). One Collector may be + used as backing storage for several simultaneous Viewers + where each one may display a different view of the same trace + data.

+ +

The interface between the Collector and its + Viewers is public in order to enable other types of + Viewers. However in the following text we will focus on + usage of the et_viewer.

+ +

The main start function is et_viewer:start/1. By + default it will start both an et_collector and an + et_viewer:

+ +

+ + {ok, Viewer} = et_viewer:start([]). + {ok,<0.40.0>}]]> + +

A Viewer gets trace Events from its + Collector by polling it regularly for more Events to + display. Events are for example reported to the + Collector with et_collector:report_event/6:

+ + Collector = et_viewer:get_collector_pid(Viewer). + <0.39.0> + 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer, + 3> "Start outer transaction"), + 3> et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid, + 3> "New transaction id is 4711"), + 3> et_collector:report_event(Collector, 20, my_shell, mnesia_locker, try_write_lock, + 3> "Acquire write lock for {my_tab, key}"), + 3> et_collector:report_event(Collector, 10, mnesia_locker, my_shell, granted, + 3> "You got the write lock for {my_tab, key}"), + 3> et_collector:report_event(Collector, 60, my_shell, do_commit, + 3> "Perform transaction commit"), + 3> et_collector:report_event(Collector, 40, my_shell, mnesia_locker, release_tid, + 3> "Release all locks for transaction 4711"), + 3> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction, + 3> "End of outer transaction"), + 3> et_collector:report_event(Collector, 20, my_shell, end_outer, + 3> "Transaction returned {atomic, ok}"). + {ok,{table_handle,<0.39.0>,16402,trace_ts, + #Fun}}]]> + +

This actually is a simulation of the process Events + caused by a Mnesia transaction that writes a record in a local + table:

+ + mnesia:write({my_tab, key, val}) end).]]> + +

At this stage when we have a couple of Events, it is time to + show how it looks like in the graphical interface of + et_viewer:

+ +

+ + + A simulated Mnesia transaction which writes one record + + +

In the sequence chart, the actors (which symbolically has + performed the Event) are shown as named vertical bars. The + order of the actors may be altered by dragging (hold mouse button + 1 pressed during the operation) the name tag of an actor and drop + it elsewhere:

+ + + Two actors has switched places + + +

An Event may be an action performed by one single actor + (blue text label) or it may involve two actors and is then + depicted as an arrow directed from one actor to another (red text + label). Details of an Event can be shown by clicking (press + and release the mouse button 1) on the event label text or on the + arrow. When doing that a Contents Viewer window pops up. It + may look like this:

+ +

+ + + Details of a write lock message + +
+ +
+ Filters and dictionary + +

The Event Tracer (ET) uses named filters in various + contexts. An Event Trace filter is an Erlang fun that takes + some trace data as input and returns a possibly modified version + of it: +

+ +

+ + false | true | {true, NewEvent} + + TraceData = Event | erlang_trace_data() + Event = #event{} + NewEvent = #event{}]]> + +

The interface of the filter function is the same as the the + filter functions for the good old lists:zf/2. If the filter + returns false it means that the trace data should silently + be dropped. true means that the trace data data already is + an Event Record and that it should be kept as it is. + true means that the TraceData already is an Event + Record and that it should be kept as it is. {true, + NewEvent} means that the original trace data should be + replaced with Event. This provides means to get rid of + unwanted Events as well as enabling alternate views of an + Event.

+ +

The first filter that the trace data is exposed for is the + Collector Filter. When a trace Event is reported with + et_collector:report/2 (or + et_collector:report_event/5,6) the first thing that + happens, is that a message is sent to the Collector process + to fetch a handle that contains some useful stuff, such as the + Collector Filter Fun and an Ets table identifier. Then the + Collector Filter Fun is applied and if it returns + true (or {true, NewEvent}), the Event will be stored + in an Ets table. As an optimization, subsequent calls to + et_collector:report-functions can use the handle directly + instead of the Collector Pid.

+ +

All filters (registered in a Collector or in a + Viewer) must be able to handle an Event record as + input. The Collector Filter (that is the filter named + all) is a little bit special, as its input also may be raw + Erlang Trace Data

+ +

The Collector manages a key/value based dictionary, + where the filters are stored. Updates of the dictionary is + propagated to all subscribing processes. When a Viewer is + started it is registered as a subscriber of dictionary + updates.

+ +

In each Viewer there is only one filter that is active + and all trace Events that the Viewer gets from the + Collector will pass thru that filter. By writing clever + filters it is possible to customize how the Events looks + like in the viewer. The following filter in + et/examples/et_demo.erl replaces the actor names + mnesia_tm and mnesia_locker and leaves everything + else in the record as it was:

+ +

+ + +

If we now add the filter to the running Collector:

+ +

+ + Fun = fun(E) -> et_demo:mgr_actors(E) end. + #Fun + 5> et_collector:dict_insert(Collector, {filter, mgr_actors}, Fun). + ok]]> + +

you will see that the Filter menu in all viewers have + got a new entry called mgr_actors. Select it, and a new + Viewer window will pop up:

+ +

+ + + The same trace data in a different view + + +

In order to see the nitty gritty details of an Event you + may click on the Event in order to start a Contents + Viewer for that Event. In the Contents Viewer + there also is a filter menu that enables inspection of the + Event from other views than the one selected in the + viewer. A click on the new_tid Event will cause a + Contents Viewer window to pop up, showing the Event + in the mgr_actors view:

+ +

+ + + The trace Event in the mgr_actors view + + +

Select the all entry in the Filters menu + and a new Contents Viewer window will pop up showing the + same trace Event in the collectors view:

+ +

+ + + The same trace Event in the collectors + view + +
+ +
+ Trace clients +

As you have seen, it is possible to use the + et_collector:report_event/5,6 functions explicitly. By + using those functions you can write your own trace client that + reads trace data from any source stored in any format and just + feed the Collector with it. You may replace the default + Collector Filter with a filter that converts new exciting + trace data formats to Event Records or you may convert it + to an Event Record before you invoke + et_collector:report/2 and then rely on the default + Collector Filter to handle the new format.

+ +

There are also existing functions in the API that reads from + various sources and calls et_collector:report/2:

+ + + +

The trace Events that are hosted by the Collector may be + stored to file and later be loaded by selecting save + and load entries in the Viewers File menu + or via the et_collector API.

+
+ + +

It is also possible to perform live tracing of a running + system by making use of the built-in trace support in the + Erlang emulator. These Erlang traces can be directed to files + or to ports. See the reference manual for + erlang:trace/4, erlang:trace_pattern/3, + dbg and ttb for more info.

+ +

There are also corresponding trace client types that can + read the Erlang trace data format from such files or ports. + The et_collector:start_trace_client/3 function makes + use of these Erlang trace clients and redirects the trace data + to the Collector.

+ +

The default Collector Filter converts the raw Erlang + trace data format into Event Records. If you want to + perform this differently you can of course write your own + Collector Filter from scratch. But it may probably save + you some efforts if you first apply the default filter in + et_selector:parse_event/2 before you apply your own + conversions of its output.

+
+
+
+ +
+ Global tracing + +

Setting up an Erlang tracer on a set of nodes and connecting + trace clients to the ports of these tracers is not intuitive. In + order to make this it easier the Event Tracer has a notion + of global tracing. When used, the et_collector process will + monitor Erlang nodes and when one connects, an Erlang tracer will + automatically be started on the newly connected node. A + corresponding trace client will also be started on the + Collector node in order to automatically forward the trace + Events to the Collector. Set the boolean parameter + trace_global to true for either the + et_collector or et_viewer in order to activate the + global tracing. There is no restriction on how many concurrent + (anonymous) collectors you can have, but you can only have one + global Collector as its name is registered in + global.

+ +

In order to further simplify the tracing, you can make use of + the et:trace_me/4,5 functions. These functions are intended + to be invoked from other applications when there are interesting + Events, in your application that needs to be + highlighted. The functions are extremely light weight as they do + nothing besides returning an atom. These functions are + specifically designed to be traced for. As the caller explicitly + provides the values for the Event Record fields, the + default Collector Filter is able to automatically provide a + customized Event Record without any user defined filter + functions.

+ +

In normal operation, the et:trace_me/4,5 calls are almost + for free. When tracing is needed, you can either activate tracing + on these functions explicitly. Or you can combine the usage of + trace_global with the usage of trace_pattern. When + set, the trace_pattern will automatically be activated on + all connected nodes.

+ +

One nice thing with the trace_pattern is that it + provides a very simple way of minimizing the amount of generated + trace data by allowing you to explicitly control the detail level + of the tracing. As you may have seen the et_viewer have a + slider called "Detail Level" that allows you to control the + detail level of the trace Events displayed in the + Viewer. On the other hand if you set a low detail level in + the trace_pattern, lots of the trace data will never be + generated and thus not sent over the socket to the trace client + and stored in the Collector.

+
+ +
+ Viewer window + +

Almost all functionality available in the et_viewer is + also available via shortcuts. Which key that has the same effect + as selecting a menu entry is shown enclosed in parentheses. For + example pressing the key r is equivalent to selecting the + menu entry Viewer->Refresh.

+ +

File menu:

+ + + +

Clear all events in the Collector - Deletes all + Events stored in the Collector and notifies all + connected Viewers about this.

+
+ + +

Load events to the Collector from file - Loads the + Collector with Events from a file and notifies + all connected Viewers about this.

+
+ + +

Save all events in the Collector to file - Saves all + Events stored in the Collector to file.

+
+ + +

Print setup - Enables editing of printer setting, + such as paper and layout.

+
+ + +

Print current page - Prints the events on the + current page. The page size is dependent of the selected paper + type.

+
+ + +

Print all pages - Prints all events. The page size + is dependent of the selected paper type.

+
+ + +

Close this Viewer - Closes this Viewer + window, but keeps all other Viewers windows and the + Collector process.

+
+ + +

Close other Viewers, but this - Keeps this + Viewer window and its Collector process, but + closes all other Viewers windowsconnected to the same + Collector.

+
+ + +

Close all Viewers and the Collector - Closes the + Collector and all Viewers connected to it.

+
+
+ +

Viewer menu:

+ + + +

First - Scrolls this viewer to the first + Event in the Collector.

+
+ + +

Last - Scrolls this viewer to the last + Event in the Collector.

+
+ + +

Prev - Scrolls this viewer one page + backwards.

+
+ + +

Next - Scrolls this viewer one page + forward.

+
+ + +

Refresh - Clears this viewer and re-read its + Events from the Collector.

+
+ + +

Up - Scrolls a few Events backwards.

+
+ + +

Down - Scrolls a few Events forward.

+
+ + +

Display all actors. - Reset the settings for hidden + and/or highlighted actors.

+
+
+ +

Collector menu:

+ + + +

First - Scrollsall viewers to the first + Event in the Collector.

+
+ + +

Last - Scrolls all viewers to the last + Event in the Collector.

+
+ + +

Prev - Scrolls all viewers one page + backwards.

+
+ + +

Next - Scrolls all viewers one page + forward.

+
+ + +

Refresh - Clears all viewers and re-read + their Events from the Collector.

+
+
+ +

Filters and scaling menu:

+ + + +

ActiveFilter (=) - Starts a new Viewer window + with the same active filter and scale as the current one.

+
+ + +

ActiveFilter (+) - Starts a new Viewer window + with the same active filter but a larger scale than the + current one.

+
+ + +

ActiveFilter (-) - Starts a new Viewer window + with the same active filter but a smaller scale than the + current one.

+
+ + +

all (0) - Starts a new Viewer with the + Collector Filter as active filter. It will cause all + events in the collector to be viewed.

+
+ + +

AnotherFilter (2) - If more filters are inserted + into the dictionary, these will turn up here as entries in the + Filters menu. The second filter will get the shortcut + number 2, the next one number 3 etc. The names are sorted.

+
+
+ +

Slider and radio buttons:

+ + + +

Hide From=To - When true, this means that the + Viewer will hide all Events where the from-actor + equals to its to-actor. These events are sometimes called + actions.

+
+ + +

Hide (excluded actors) - When true, this means that + the Viewer will hide all Events whose actors are + marked as excluded. Excluded actors are normally enclosed in + round brackets when they are displayed inthe + Viewer.

+
+ + +

Detail level - This slider controls the resolution + of the Viewer. Only Events with a detail level + smaller than the selected one (default=100=max) are + displayed.

+
+
+ +

Other features:

+ + + +

Vertical scroll - Use mouse wheel and up/down arrows + to scroll little. Use page up/down and home/end buttons to + scroll more.

+
+ + +

Display details of an event - Left mouse click on + the event label or the arrowand a new Contents Viewer + window will pop up, displaying the contents of an + Event.

+
+ + +

Highlight actor (toggle) - Left mouse click on the + actor name tag. The actor name will be enclosed in square + brackets []. When one or more actors are highlighted, + only events related to those actors are displayed. All others + are hidden.

+
+ + +

Exclude actor (toggle) - Right mouse click on the + actor name tag. The actor name will be enclosed in round + brackets (). When an actor is excluded, all events + related to this actor is hidden. If the checkbox Hide + (excluded actors) is checked, even the name tags and + corresponding vertical line of excluded actors will be + hidden.

+
+ + +

Move actor - Left mouse button drag and drop on + actor name tag. Move the actor by first clicking on the actor + name, keeping the button pressed while moving the cursor to a + new location and release the button where the actor should be + moved to.

+
+ + +

Display all actors - Press the 'a' button. Reset the + settings for hidden and/or highlighted actors.

+
+
+
+ +
+ Configuration + +

The Event Records in the Ets table are ordered by their + timestamp. Which timestamp that should be used is controlled via + the event_order parameter. Default is trace_ts which + means the time when the trace data was generated. event_ts + means the time when the trace data was parsed (transformed into an + Event Record).

+
+ +
+ Contents viewer window + +

File menu:

+ + + +

Close - Close this window.

+
+ + +

Save - Save the contents of this window to file.

+
+
+ +

Filters menu:

+ + + +

ActiveFilter - Start a new Contents Viewer + window with the same active filter.

+
+ + +

AnotherFilter (2) - If more filters are inserted + into the dictionary, these will turn up here as entries in the + Filters menu. The second filter will be number 2, the + next one number 3 etc. The names are sorted.

+
+
+ +

Hide menu:

+ + + +

Hide actor in viewer - Known actors are shown as a + named vertical bars in the Viewer window. By hiding the + actor, its vertical bar will be removed and the Viewer + will be refreshed.

+ +

Hiding the actor is only useful if the + max_actors threshold has been reached, as it then will + imply that the "hidden" actor will be displayed as if it were + "UNKNOWN". If the max_actors threshold not have + been reached, the actor will re-appear as a vertical bar in + the Viewer.

+
+ +

Show actor in viewer - This implies that the actor + will be added as a known actor in the Viewer with its + own vertical bar.

+
+
+ +

Search menu:

+ + + +

Forward from this event - Set this event to be the first + event in the viewer and change its display mode to be enter + forward search mode. The actor of this event (from, to or + both) will be added to the list of selected actors.

+
+ + +

Reverse from this event - Set this event to be the + first Event in the Viewer and change its display + mode to be enter reverse search mode. The actor of this + Event (from, to or both) will be added to the list of + selected actors. Observe, that the Events will be shown + in reverse order.

+
+ + +

Abort search. Display all - Switch the display mode + of the Viewer to show all Events regardless of + any ongoing searches. Abort the searches.

+
+
+
+
+ diff --git a/lib/et/doc/src/et_examples.xml b/lib/et/doc/src/et_examples.xml deleted file mode 100644 index 7627b191a1..0000000000 --- a/lib/et/doc/src/et_examples.xml +++ /dev/null @@ -1,311 +0,0 @@ - - - - -
- - 20022009 - Ericsson AB. All Rights Reserved. - - - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. - - - - Examples - Håkan Mattsson - Håkan Mattsson - - Håkan Mattsson - - - %VSN% - et_examples.xml -
- -
- A simulated Mnesia transaction -

The Erlang code for running the simulated Mnesia transaction example - in the previous chapter is included in the et/examples/et_demo.erl file: -

-

- -

- -

If you invoke the et_demo:sim_trans() function a viewer - window will pop up and the sequence trace will be almost the same as - if the following Mnesia transaction would have been run:

-

- - mnesia:transaction(fun() -> mnesia:write({my_tab, key, val}) end). - -

And the viewer window will look like:

-

- et_demo:sim_trans(). - {ok,{table_handle,<0.30.0>,11,trace_ts,#Fun}} - 2> - ]]> -

- - A simulated Mnesia transaction which writes one record - -
- -
- Some convenient functions used in the Mnesia transaction example -

The module_as_actor filter converts the event-records so - the module names becomes actors and the invoked functions becomes - labels. If the information about who the caller was it will be - displayed as an arrow directed from the caller to the callee. The - [{message, {caller}}, {return_trace}] options to dbg:tpl/2 - function will imply the necessary information in the Erlang traces. - Here follows the module_as_actor filter:

-

- -

The plain_process_info filter does not alter the event-records. - It merely ensures that the event not related to processes are skipped:

-

- -

The plain_process_info_nolink filter does not alter the - event-records. It do makes use of the plain_process_info , but - do also ensure that the process info related to linking and unlinking - is skipped:

-

- -

In order to simplify the startup of an et_viewer process - with the filters mentioned above, plus some others (that also are - found in et/examples/et_demo.erl src/et_collector.erl the - et_demo:start/0,1 functions can be used:

-

- -

A simple one-liner starts the tool:

- - erl -pa ../examples -s et_demo - -

The filters are included by the following parameters:

-

- -
- -
- Erlang trace of a Mnesia transaction -

The following piece of code et_demo:trace_mnesia/0 - activates call tracing of both local and external function calls for - all modules in the Mnesia application. The call traces are configured - cover all processes (both existing and those that are spawned in the - future) and include timestamps for trace data. It do also activate - tracing of process related events for Mnesia's static processes plus - the calling process (that is your shell). Please, observe that the - whereis/1 call in the following code requires that both the - traced Mnesia application and the et_vieweris running on the - same node:

-

- -

The et_demo:live_trans/0 function starts the a global - controller, starts a viewer, starts Mnesia, creates a local table, - activates tracing (as described above) and registers the shell - process is as 'my_shell' for clarity. Finally the a simple Mnesia - transaction that writes a single record is run:

-

- -

Now we run the et_demo:live_trans/0 function:

-

- - erl -pa ../examples -s et_demo live_trans - Erlang (BEAM) emulator version 2002.10.08 [source] - - Eshell V2002.10.08 (abort with ^G) - 1> - -

Please, explore the different filters in order to see how the traced - transaction can be seen from different point of views:

-

- - A real Mnesia transaction which writes one record - -
- -
- Erlang trace of Megaco startup -

The Event Tracer (ET) tool was initially written in order to - demonstrate how messages where sent over the Megaco protocol. This - were back in the old days before the standard bodies of IETF and ITU - had approved Megaco (also called H.248) as an international - standard.

-

In the Megaco application of Erlang/OTP, the code is carefully - instrumented with calls to et:report_event/5. For call a detail - level is set in order to dynamically control the trace level in a - simple manner.

-

The megaco_filter module implements a customized filter - for Megaco messages. It does also make use of trace_global - combined with usage of the trace_pattern:

-

- - -module(megaco_filter). - -export([start/0]). - - start() -> - Options = - [{event_order, event_ts}, - {scale, 3}, - {max_actors, infinity}, - {trace_pattern, {megaco, max}}, - {trace_global, true}, - {dict_insert, {filter, megaco_filter}, fun filter/1}, - {active_filter, megaco_filter}, - {title, "Megaco tracer - Erlang/OTP"}], - et_viewer:start(Options). - -

First we start an Erlang node with the a global collector and - its viewer. The et_viewer: search for: [] ++ ["gateway_tt"] - printout is caused by a click on the "gateway_tt" actor name in the - viewer. It means that only events with that actor will be displayed - in the viewer.

-

- - erl -sname observer -s megaco_filter - Erlang (BEAM) emulator version 2002.10.08 [source] - - Eshell V2002.10.08 (abort with ^G) - (observer@amrod)1> et_viewer: search for: [] ++ ["gateway_tt"] - -

Secondly we start another Erlang node which we connect the - observer node, before we start the application that we want to - trace. In this case we start a Media Gateway Controller that listens - for both TCP and UDP on the text and binary ports for Megaco:

-

- - erl -sname mgc -pa ../../megaco/examples/simple - Erlang (BEAM) emulator version 2002.10.08 [source] - - Eshell V2002.10.08 (abort with ^G) - (mgc@amrod)1> net:ping(observer@amrod). - pong - (mgc@amrod)2> megaco:start(). - ok - (mgc@amrod)3> megaco_simple_mgc:start(). - {ok,[{ok,2944, - {megaco_receive_handle,{deviceName,"controller"}, - megaco_pretty_text_encoder, - [], - megaco_tcp}}, - {ok,2944, - {megaco_receive_handle,{deviceName,"controller"}, - megaco_pretty_text_encoder, - [], - megaco_udp}}, - {ok,2945, - {megaco_receive_handle,{deviceName,"controller"}, - megaco_binary_encoder, - [], - megaco_tcp}}, - {ok,2945, - {megaco_receive_handle,{deviceName,"controller"}, - megaco_binary_encoder, - [], - megaco_udp}}]} - (mgc@amrod)4> - -

And finally we start an Erlang node for the Media Gateways and - connect to the observer node. Each Media Gateway connects to the - controller and sends an initial Service Change message. The controller - accepts the gateways and sends a reply to each one using the same - transport mechanism and message encoding according to the preference - of each gateway. That is all combinations of TCP/IP transport, UDP/IP - transport, text encoding and ASN.1 BER encoding:

-

- - erl -sname mg -pa ../../megaco/examples/simple - Erlang (BEAM) emulator version 2002.10.08 [source] - - Eshell V2002.10.08 (abort with ^G) - (mg@amrod)1> net:ping(observer@amrod). - pong - (mg@amrod)2> megaco_simple_mg:start(). - [{{deviceName,"gateway_tt"},{error,{start_user,megaco_not_started}}}, - {{deviceName,"gateway_tb"},{error,{start_user,megaco_not_started}}}, - {{deviceName,"gateway_ut"},{error,{start_user,megaco_not_started}}}, - {{deviceName,"gateway_ub"},{error,{start_user,megaco_not_started}}}] - (mg@amrod)3> megaco:start(). - ok - (mg@amrod)4> megaco_simple_mg:start(). - [{{deviceName,"gateway_tt"}, - {1, - {ok,[{'ActionReply',0, - asn1_NOVALUE, - asn1_NOVALUE, - [{serviceChangeReply, - {'ServiceChangeReply', - [{megaco_term_id,false,["root"]}], - {serviceChangeResParms, - {'ServiceChangeResParm', - {deviceName|...}, - asn1_NOVALUE|...}}}}]}]}}}, - {{deviceName,"gateway_tb"}, - {1, - {ok,[{'ActionReply',0, - asn1_NOVALUE, - asn1_NOVALUE, - [{serviceChangeReply, - {'ServiceChangeReply', - [{megaco_term_id,false,["root"]}], - {serviceChangeResParms, - {'ServiceChangeResParm', - {...}|...}}}}]}]}}}, - {{deviceName,"gateway_ut"}, - {1, - {ok,[{'ActionReply',0, - asn1_NOVALUE, - asn1_NOVALUE, - [{serviceChangeReply, - {'ServiceChangeReply', - [{megaco_term_id,false,["root"]}], - {serviceChangeResParms, - {'ServiceChangeResParm',{...}|...}}}}]}]}}}, - {{deviceName,"gateway_ub"}, - {1, - {ok,[{'ActionReply',0, - asn1_NOVALUE, - asn1_NOVALUE, - [{serviceChangeReply, - {'ServiceChangeReply', - [{megaco_term_id,false,["root"]}], - {serviceChangeResParms, - {'ServiceChangeResParm'|...}}}}]}]}}}] - (mg@amrod)5> - -

The Megaco adopted viewer looks like this, when we have clicked - on the "gateway_tt" actor name in order to only display the events - regarding that actor:

-

- - The viewer adopted for Megaco - -

A pretty printed Megaco message looks like this:

-

- - A textual Megaco message - -

And the corresponding internal form for the same Megaco message - looks like this:

-

- - The internal form of a Megaco message - -
-
- diff --git a/lib/et/doc/src/et_examples.xmlsrc b/lib/et/doc/src/et_examples.xmlsrc new file mode 100644 index 0000000000..7678184515 --- /dev/null +++ b/lib/et/doc/src/et_examples.xmlsrc @@ -0,0 +1,383 @@ + + + + +
+ + 20022010 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + Advanced examples + Håkan Mattsson + Håkan Mattsson + + Håkan Mattsson + + + %VSN% + et_examples.xml +
+ +
+ A simulated Mnesia transaction +

The Erlang code for running the simulated Mnesia transaction + example in the previous chapter is included in the + et/examples/et_demo.erl file:

+ +

+ + + +

+ + + +

If you invoke the et_demo:sim_trans() function, a + Viewer window will pop up and the sequence trace will be + almost the same as if the following Mnesia transaction + would have been run:

+ +

+ + mnesia:write({my_tab, key, val}) end).]]> + +

And the viewer window will look like:

+ +

+ + {ok, Viewer} = et_viewer:start([]). + {ok,<0.40.0>;} + 2> et_demo:sim_trans(). + {ok,{table_handle,<0.45.0>,24596,trace_ts, + #Fun}}]]> + +

+ + + A simulated Mnesia transaction which writes one + record + + +
+ +
+ Some convenient functions used in the <c>Mnesia</c> transaction + example + +

The module_as_actor filter converts the Event + Records so the module names becomes actors and the invoked + functions becomes labels. If the information about who the caller + was it will be displayed as an arrow directed from the caller to + the callee. The [{message, {caller}}, {return_trace}] + options to dbg:tpl/2 function will imply the necessary + information in the Erlang traces. Here follows the + module_as_actor filter:

+ + +

+ + + +

The plain_process_info filter does not alter the + Event Records. It merely ensures that the event not + related to processes are skipped:

+ +

+ + + +

The plain_process_info_nolink filter does not alter the + Event Records. It do makes use of the + plain_process_info , but do also ensure that the process + info related to linking and unlinking is skipped:

+ +

+ + + +

In order to simplify the startup of an et_viewer process + with the filters mentioned above, plus some others (that also are + found in et/examples/et_demo.erl src/et_collector.erl the + et_demo:start/0,1 functions can be used:

+ +

+ + + +

A simple one-liner starts the tool:

+ + + +

The filters are included by the following parameters:

+ +

+ + + +
+ +
+ Erlang trace of a real Mnesia transaction + +

The following piece of code et_demo:trace_mnesia/0 + activates call tracing of both local and external function calls + for all modules in the Mnesia application. The call traces + are configured cover all processes (both existing and those that + are spawned in the future) and include timestamps for trace + data. It do also activate tracing of process related events for + Mnesia's static processes plus the calling process (that is + your shell). Please, observe that the whereis/1 call in the + following code requires that both the traced Mnesia + application and the et_viewer is running on the same + node:

+ +

+ + + +

The et_demo:live_trans/0 function starts the global + Collector, starts a Viewer, starts Mnesia, + creates a local table, activates tracing (as described above) and + registers the shell process is as 'my_shell' for clarity. Finally + a simple Mnesia transaction that writes a single record + is run:

+ +

+ + + +

Now we run the et_demo:live_trans/0 function:

+ +

+ + et_demo:live_trans(). + {atomic,ok}]]> + +

Please, explore the different filters in order to see how the traced + transaction can be seen from different point of views:

+ +

+ + + A real Mnesia transaction which writes one record + + +
+ +
+ Erlang trace of Megaco startup + +

The Event Tracer (ET) tool was initially written in + order to demonstrate how messages where sent over the + Megaco protocol. This were back in the old days before the + standard bodies of IETF and ITU had approved + Megaco (also called H.248) as an international + standard.

+ +

In the Megaco application of Erlang/OTP, the code is + carefully instrumented with calls to et:trace_me/5. For + each call a detail level is given in order to enable dynamic + control of the trace level in a simple manner.

+ +

The megaco_filter module implements a customized filter + for Megaco messages. It does also make use of + trace_global combined with usage of the + trace_pattern:

+ +

+ + + Options = + [{event_order, event_ts}, + {scale, 3}, + {max_actors, infinity}, + {trace_pattern, {megaco, max}}, + {trace_global, true}, + {dict_insert, {filter, megaco_filter}, fun filter/1}, + {active_filter, megaco_filter}, + {title, "Megaco tracer - Erlang/OTP"}], + et_viewer:start(Options).]]> + +

First we start an Erlang node with a global Collector + and its Viewer.

+ +

+ + megaco_filter:start(). + {ok,<0.48.0>}]]> + +

Secondly we start another Erlang node which we connect the + observer node, before we start the application that we want to + trace. In this case we start a Media Gateway Controller that + listens for both TCP and UDP on the text and binary ports for + Megaco:

+ +

+ + net:ping(observer@falco). + pong + (mgc@falco)2> megaco:start(). + ok + (mgc@falco)3> megaco_simple_mgc:start(). + {ok,[{ok,2944, + {megaco_receive_handle,{deviceName,"controller"}, + megaco_pretty_text_encoder,[],megaco_tcp,dynamic}}, + {ok,2944, + {megaco_receive_handle,{deviceName,"controller"}, + megaco_pretty_text_encoder,[],megaco_udp,dynamic}}, + {ok,2945, + {megaco_receive_handle,{deviceName,"controller"}, + megaco_binary_encoder,[],megaco_tcp,dynamic}}, + {ok,2945, + {megaco_receive_handle,{deviceName,"controller"}, + megaco_binary_encoder,[],megaco_udp,dynamic}}]}]]> + +

And finally we start an Erlang node for the Media Gateways and + connect to the observer node. Each Media Gateway connects to the + controller and sends an initial Service Change message. The + controller accepts the gateways and sends a reply to each one + using the same transport mechanism and message encoding according + to the preference of each gateway. That is all combinations of + TCP/IP transport, UDP/IP transport, text encoding and ASN.1 BER + encoding:

+ +

+ + net:ping(observer@falco). + pong + (mg@falco)2> megaco_simple_mg:start(). + [{{deviceName,"gateway_tt"}, + {error,{start_user,megaco_not_started}}}, + {{deviceName,"gateway_tb"}, + {error,{start_user,megaco_not_started}}}, + {{deviceName,"gateway_ut"}, + {error,{start_user,megaco_not_started}}}, + {{deviceName,"gateway_ub"}, + {error,{start_user,megaco_not_started}}}] + (mg@falco)3> megaco:start(). + ok + (mg@falco)4> megaco_simple_mg:start(). + [{{deviceName,"gateway_tt"}, + {1, + {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE, + [{serviceChangeReply, + {'ServiceChangeReply', + [{megaco_term_id,false,["root"]}], + {serviceChangeResParms, + {'ServiceChangeResParm', + {deviceName,"controller"}, + asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE, + asn1_NOVALUE}}}}]}]}}}, + {{deviceName,"gateway_tb"}, + {1, + {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE, + [{serviceChangeReply, + {'ServiceChangeReply', + [{megaco_term_id,false,["root"]}], + {serviceChangeResParms, + {'ServiceChangeResParm', + {deviceName,"controller"}, + asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE, + asn1_NOVALUE}}}}]}]}}}, + {{deviceName,"gateway_ut"}, + {1, + {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE, + [{serviceChangeReply, + {'ServiceChangeReply', + [{megaco_term_id,false,["root"]}], + {serviceChangeResParms, + {'ServiceChangeResParm', + {deviceName,"controller"}, + asn1_NOVALUE,asn1_NOVALUE,asn1_NOVALUE, + asn1_NOVALUE}}}}]}]}}}, + {{deviceName,"gateway_ub"}, + {1, + {ok,[{'ActionReply',0,asn1_NOVALUE,asn1_NOVALUE, + [{serviceChangeReply, + {'ServiceChangeReply', + [{megaco_term_id,false,["root"]}], + {serviceChangeResParms, + {'ServiceChangeResParm', + {deviceName,"controller"}, + asn1_NOVALUE,asn1_NOVALUE, + asn1_NOVALUE,...}}}}]}]}}}]]]> + +

The Megaco adopted viewer looks like this, when we have clicked + on the [gateway_tt] actor name in order to only display the events + regarding that actor:

+ +

+ + + The viewer adopted for Megaco + + +

A pretty printed Megaco message looks like this:

+ +

+ + + A textual Megaco message + + +

And the corresponding internal form for the same Megaco message + looks like this:

+ +

+ + + The internal form of a Megaco message + + +
+ +
+ diff --git a/lib/et/doc/src/et_intro.xml b/lib/et/doc/src/et_intro.xml index 8dfa678b11..0c5fb14d55 100644 --- a/lib/et/doc/src/et_intro.xml +++ b/lib/et/doc/src/et_intro.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + Introduction @@ -31,65 +31,89 @@ %VSN% et_intro.xml
-

The Event Tracer (ET) uses the built-in trace mechanism in Erlang - and provides tools for collection and graphical viewing of trace - data.

-

The viewed trace data is normally collected from Erlang trace ports - or files.

+ +

The Event Tracer (ET) uses the built-in trace mechanism in + Erlang and provides tools for collection and graphical viewing of + trace data.

+ +

The viewed trace data is normally collected from Erlang trace + ports or files.

- Scope and Purpose -

This manual describes the Event Tracer (ET) application, as a component - of the Erlang/Open Telecom Platform development environment. It - is assumed that the reader is familiar with the Erlang - Development Environment, which is described in a separate User's - Guide.

+ Scope and Purpose' + +

This manual describes the Event Tracer (ET) application, + as a component of the Erlang/Open Telecom Platform development + environment. It is assumed that the reader is familiar with the + Erlang Development Environment, which is described in a separate + User's Guide.

Prerequisites +

The following prerequisites is required for understanding the - material in the Event Tracer (ET) User's Guide:

+ material in the Event Tracer (ET) User's Guide:

+ -

familiarity with the Erlang system and Erlang programming in - general and the especially the art of Erlang tracing.

+

familiarity with the Erlang system and Erlang programming + in general and the especially the art of Erlang tracing.

-

The application requires Erlang/OTP release R7B or later.

+ +

The application requires Erlang/OTP release R13BB or later. If + you use the old GS based GUI it does suffice with R7B.

+
About This Manual -

In addition to this introductory chapter, the Megaco User's - Guide contains the following chapters:

+ +

In addition to this introductory chapter, the Event + Tracers User's Guide contains the following chapters:

+ -

Chapter 2: "Usage" describes the architecture - and typical usage of the application.

+

Chapter 2: "Tutorial" provides a walk-through of the + various parts of the application. The tutorial is based on + Jayson Vantuyl's article + http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.html.

+
+ + +

Chapter 3: "Description" describes the architecture and typical + usage of the application.

+ -

Chapter 3: "Examples" gives some usage examples

+

Chapter 4: "Advanced examples" gives some usage examples

+
Where to Find More Information +

Refer to the following documentation for more information about - Event Tracer (ET) and about the Erlang/OTP development system:

+ Event Tracer (ET) and about the Erlang/OTP development system:

+

the Reference Manual of the Event Tracer (ET).

+ -

documentation of basic tracing in erlang:trace/4 and - erlang:trace_pattern/3 and then the utilities derived from - these: dbg, observer and et.

+

documentation of basic tracing in erlang:trace/4 and + erlang:trace_pattern/3 and then the utilities derived + from these: dbg, observer, invisio and + et.

+ -

Concurrent Programming in Erlang, 2nd Edition (1996), - Prentice-Hall, ISBN 0-13-508301-X.

+

Programming Erlang: Software for a Concurrent World by Joe + Armstrong; ISBN: 978-1-93435-600-5

diff --git a/lib/et/doc/src/et_selector.xml b/lib/et/doc/src/et_selector.xml index 59b1d3dea9..3e5b030e7a 100644 --- a/lib/et/doc/src/et_selector.xml +++ b/lib/et/doc/src/et_selector.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + et_selector @@ -35,72 +35,112 @@

+ make_pattern(RawPattern) -> TracePattern Makes a trace pattern suitable to feed change_pattern/1 + RawPattern = detail_level() TracePattern = erlang_trace_pattern_match_spec() detail_level() = min | max | integer(X) when X =< 0, X >= 100 +

Makes a trace pattern suitable to feed change_pattern/1

-

Min detail level deactivates tracing of calls to phone_home/4,5

-

Max detail level activates tracing of all calls to phone_home/4,5

+

Min detail level deactivates tracing of calls to et:trace_me/4,5

+

Max detail level activates tracing of all calls to et:trace_me/4,5

integer(X) detail level activates tracing of all calls to - phone_home/4,5 whose detail level argument is lesser than X.

-

See also erlang:trace_pattern/2 for more info about its match_spec()

+ et:trace_me/4,5 whose detail level argument is lesser than + X.

+

See also erlang:trace_pattern/2 for more info about its match_spec()

+ change_pattern(Pattern) -> ok + Activates/deactivates tracing by changing the current trace pattern + Pattern = detail_level() | empty_match_spec() | erlang_trace_pattern_match_spec() detail_level() = min | max | integer(X) when X =<0, X >= 100 empty_match_spec() = [] +

Activates/deactivates tracing by changing the current trace pattern.

-

Min detail level deactivates tracing of calls to phone_home/4,5

-

Max detail level activates tracing of all calls to phone_home/4,5

-

integer(X) detail level activates tracing of all calls to - phone_home/4,5 whose detail level argument is lesser than X.

-

An empty match spec deactivates tracing of calls to phone_home/4,5

-

Other match specs activates tracing of calls to phone_home/4,5 - accordingly with erlang:trace_pattern/2.

+

min detail level deactivates tracing of calls to et:trace_me/4,5

+

max detail level activates tracing of all calls to et:trace_me/4,5

+

integer(X) detail level activates tracing of all + calls to et:trace_me/4,5 whose detail level argument is + lesser than X.

+

An empty match spec deactivates tracing of calls to et:trace_me/4,5

+

Other match specs activates tracing of calls to + et:trace_me/4,5 accordingly with + erlang:trace_pattern/2.

parse_event(Mod, ValidTraceData) -> false | true | {true, Event} + Transforms trace data and makes an event record out of it + Mod = module_name() | undefined <v>module_name() = atom() <v>ValidTraceData = erlang_trace_data() | record(event) erlang_trace_data() = {trace, Pid, Label, Info} | {trace, Pid, Label, Info, Extra} | {trace_ts, Pid, Label, Info, ReportedTS} | {trace_ts, Pid, Label, Info, Extra, ReportedTS} | {seq_trace, Label, Info} | {seq_trace, Label, Info, ReportedTS} | {drop, NumberOfDroppedItems} +

Transforms trace data and makes an event record out of it.

-

See erlang:trace/3 for more info about the semantics of - the trace data.

-

An event record consists of the following fields: - detail_level - Noise has a high level as opposed to essentials. - trace_ts - Time when the trace was generated. - Same as event_ts if omitted in trace data. - event_ts - Time when the event record was created. - from - From actor, such as sender of a message. - to - To actor, such as receiver of message. - label - Label intended to provide a brief event summary. - contents - All nitty gritty details of the event.

-

See et:phone_home/4 and et:phone_home/5 for details.

-

Returns: - {true, Event} - where Event is an #event{} record representing the - trace data - true - means that the trace data already is an event - record and that it is valid as it is. - No transformation is needed. - false - means that the trace data is uninteresting and - should be dropped

+ +

See erlang:trace/3 for more info about the semantics of the + trace data.

+ +

An event record consists of the following fields:

+ + detail_level +

Noise has a high level as opposed to essentials.

+ + + trace_ts +

Time when the trace was generated. Same as + event_ts if omitted in trace data.

+ + event_ts +

Time when the event record was created.

+ + from +

From actor, such as sender of a message.

+ + to +

To actor, such as receiver of message.

+ + label +

Label intended to provide a brief event summary.

+ + contents +

All nitty gritty details of the event.

+
+ +

See et:trace_me/4and et:trace_me/5 for details.

+ +

Returns:

+ + {true, Event} +

where Event is an #event{} record representing the + trace data

+ + true +

means that the trace data already is an event + record and that it is valid as it is. No transformation is + needed.

+ + false +

means that the trace data is uninteresting and + should be dropped

+
diff --git a/lib/et/doc/src/et_tutorial.xmlsrc b/lib/et/doc/src/et_tutorial.xmlsrc new file mode 100644 index 0000000000..5c2a5a97e4 --- /dev/null +++ b/lib/et/doc/src/et_tutorial.xmlsrc @@ -0,0 +1,273 @@ + + + + +
+ + 20092009 + Ericsson AB. All Rights Reserved. + + + The contents of this file are subject to the Erlang Public License, + Version 1.1, (the "License"); you may not use this file except in + compliance with the License. You should have received a copy of the + Erlang Public License along with this software. If not, it can be + retrieved online at http://www.erlang.org/. + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + the License for the specific language governing rights and limitations + under the License. + + + + Tutorial + Håkan Mattsson + Håkan Mattsson + + Håkan Mattsson + + + %VSN% +
+ +
+ Visualizing Message Sequence Charts + +

The easiest way of using ET, is to just use it as a + graphical tool for displaying message sequence charts. In order to + do that you need to first start a Viewer (which by default + starts a Collector):

+ + + + +

Then you send events to the Collector + with the function et_collector:report_event/6 like this:

+ + + +

The Viewer will automatically pull events from the + Collector and display them on the screen.

+ +

The number (in this case 85) is an integer from 1 to 100 that + specifies the "detail level" of the message. The higher the + number, the more important it is. This provides a crude form of + priority filtering. Avoid using 100.

+ +

The from, to, and message parameters are + exactly what they sound like. from and to are + visualized in the Viewer as "lifelines", with the message + passing from one to the other. If from and to are + the same value, then it is displayed next to the lifeline as an + "action". The extra_stuff value is simply data that you can + attach that will be displayed when someone actually clicks on the + action or message in the Viewer window.

+ +

The module et/examples/et_display_demo.erl illustrates + how it can be used:

+ + + +

When you run the et_display_demo:test(). function in the + example above, the Viewer window will look like this:

. + +

+ + + Screenshot of the Viewer window + + +
+ +
+ Four Modules + +

The event tracer framework is made up of four modules:

+ + +

et

+

et_collector

+

et_viewer

+

et_selector

+
+ +

In addition, you'll probably want to familiarize yourself with + the dbg module and possibly seq_trace module as + well.

+
+ +
+ The Event Tracer Interface + +

The et module is not like other modules. It contains a + function called et:trace_me/5. Which is a function that + does not do any useful stuff at all. Its sole purpose is to be a + function that is easy to trace. A call to it may be something + like:

+ + + +

The parameters to et:trace_me/5 are the same as to + et_collector:report_event/6 + in the previous chapter. The big difference between the two is in + the semantics of the two functions. The second actually reports an + Event to the Collector while the first does nothing, + it just returns the atom hopefully_traced. In order to make + the parameters to et:trace_me/5 turn up in the + Collector, tracing of that function must be activated and + the Collector must be registered as a Tracer of the + Raw Trace Data.

+ +

Erlang tracing is a seething pile of pain that involves + reasonably complex knowledge of clever ports, tracing return + formats, and specialized tracing MatchSpecs (which are + really their own special kind of hell). The tracing mechanism is + very powerful indeed, but it can be hard to grasp.

+ +

Luckily there is a simplified way to start tracing of + et:trace_me/5 function calls. The idea is that you should + instrument your code with calls to et:trace_me/5 in + strategic places where you have interesting information available + in your program. Then you just start the Collector with + global tracing enabled:

+ + + +

This will start a Collector, a Viewer and also + start the tracing of et:trace_me/5 function calls. The + Raw Trace Data is collected by the Collector and a + view of it is displayed on the screen by the Viewer. You + can define your own "views" of the data by implementing your own + Filter functions and register them in the + Viewer.

+
+ +
+ The Collector and Viewer + +

These two pieces work in concert. Basically, the + Collector receives Raw Trace Data and processes it + into Events in a et specific format (defined in + et/include/et.hrl). The Viewer interrogates the + Collector and displays an interactive representation of the + data.

+ +

You might wonder why these aren't just one module. The + Collector is a generic full-fledged framework that allows + processes to "subscribe" to the Events that it + collects. One Collector can serve several + Viewers. The typical case is that you have one + Viewer that visualizes Events in one flavor and + another Viewer that visualizes them in another flavor. If + you for example are tracing a text based protocol like HTML + (or Megaco/H.248) it would be useful to be able to display + the Events as plain text as well as the internal + representation of the message. The architecture does also allow + you to implement your own Viewer program as long as it + complies to the protocol between the Collector/Viewer + protocol. Currently two kinds of Viewers exists. That is + the old GS based one and the new based on + wxWidgets. But if you feel for it you may implement your + own Viewer, which for example could display the + Events as ASCII art or whatever you feel useful.

+ +

The Viewer will by default create a Collector for + you. With a few options and some configuration settings you can + start collecting Events.

+ +

The Collector API does also allow you to save the + collected Events to file and later load them in a later + session.

+ +
+ +
+ The Selector + +

This is perhaps the most central module in the entirety of the + et suite. The Collector needs "filters" to convert + the Raw Trace Data into "events" that it can display. The + et_selector module provides the default Filter and + some API calls to manage the Trace Pattern. The + Selector provides various functions that achieve the + following:

+ + +

Convert Raw Trace Data into an appropriate + Event

+

Magically notice traces of the et:trace_me/5 + function and make appropriate Events

+

Carefully prevent translating the Raw Trace Data + twice

+

Manage a Trace Pattern

+
+ +

The Trace Pattern is basically a tuple of a + module and a detail level (either an integer or the + atom max for full detail). In most cases the Trace Pattern + {et,max} does suffice. But if you do not want any runtime + dependency of et you can implement your own + trace_me/5 function in some module and refer to that module + in the Trace Pattern.

+ +

The specified module flows from your instantiation of the + Viewer, to the Collector that it automatically + creates, gets stashed in as the Trace Pattern, and + eventually goes down into the bowels of the Selector.

+ +

The module that you specify gets passed down (eventually) into + Selector's default Filter. The format of the + et:trace_me/5 function call is hardcoded in that + Filter.

+ +
+ +
+ How To Put It Together + +

The Collector automatically registers itself to listen + for trace Events, so all you have to do is enable them.

+ +

For those people who want to do general tracing, consult the + dbg module on how to trace whatever you're interested in + and let it work its magic. If you just want et:trace_me/5 + to work, do the following:

+ + +

Create a Collector

+

Create a Viewer (this can do step #1 for you)

+

Turn on and pare down debugging

+
+ +

The module et/examples/et_trace_demo.erl achieves this.

+ + + +

Running through the above, the most important points are:

+ + +

Turn on global tracing

+

Set a Trace Pattern

+

Tell dbg to trace function Calls

+

Tell it specifically to trace the et:trace_me/5 function

+
+ +

When you run the et_trace_demo:test() function above, the + Viewer window will look like this screenshot:

. + +

+ + + Screenshot of the Viewer window + + +
+ +
diff --git a/lib/et/doc/src/et_viewer.xml b/lib/et/doc/src/et_viewer.xml index a3e34ac06e..c16e5b8869 100644 --- a/lib/et/doc/src/et_viewer.xml +++ b/lib/et/doc/src/et_viewer.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + et_viewer @@ -72,7 +72,7 @@ Start a sequence chart viewer for trace events (messages/actions) Options = [option() | collector_option()] - option() = {parent_pid, extended_pid()} | {title, term()} | {detail_level, detail_level()} | {is_suspended, boolean()} | {scale, integer()} | {width, integer()} | {height, integer()} | {collector_pid, extended_pid()} | {event_order, event_order()} | {active_filter, atom()} | {max_events, extended_integer()} | {max_actors, extended_integer()} | {trace_pattern, et_collector_trace_pattern()} | {trace_port, et_collector_trace_port()} | {trace_global, et_collector_trace_global()} | {trace_client, et_collector_trace_client()} | {dict_insert, {filter, filter_name()}, event_filter_fun()} | {dict_insert, et_collector_dict_key(), et_collector_dict_val()} | {dict_delete, {filter, filter_name()}} | {dict_delete, et_collector_dict_key()} | {actors, actors()} | {first_event, first_key()} | {hide_unknown, boolean()} | {hide_actions, boolean()} | {display_mode, display_mode()} + option() = {parent_pid, extended_pid()} | {title, term()} | {detail_level, detail_level()} | {is_suspended, boolean()} | {scale, integer()} | {width, integer()} | {height, integer()} | {collector_pid, extended_pid()} | {event_order, event_order()} | {active_filter, atom()} | {max_actors, extended_integer()} | {trace_pattern, et_collector_trace_pattern()} | {trace_port, et_collector_trace_port()} | {trace_global, et_collector_trace_global()} | {trace_client, et_collector_trace_client()} | {dict_insert, {filter, filter_name()}, event_filter_fun()} | {dict_insert, et_collector_dict_key(), et_collector_dict_val()} | {dict_delete, {filter, filter_name()}} | {dict_delete, et_collector_dict_key()} | {actors, actors()} | {first_event, first_key()} | {hide_unknown, boolean()} | {hide_actions, boolean()} | {display_mode, display_mode()} extended_pid() = pid() | undefined detail_level() = min | max | integer(X) when X >=0, X =< 100 event_order() = trace_ts | event_ts @@ -113,7 +113,6 @@ collector_pid - undefined. event_order - trace_ts. active_filter - collector. - max_events - 100. max_actors - 5. actors - ["UNKNOWN"]. first_event - first. diff --git a/lib/et/doc/src/files.mk b/lib/et/doc/src/files.mk index 13d6cf4d74..41964de892 100644 --- a/lib/et/doc/src/files.mk +++ b/lib/et/doc/src/files.mk @@ -1,19 +1,19 @@ #-*-makefile-*- ; force emacs to enter makefile-mode # %CopyrightBegin% -# -# Copyright Ericsson AB 2002-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 2002-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% XML_APPLICATION_FILES = \ @@ -31,27 +31,23 @@ XML_PART_FILES = \ XML_CHAPTER_FILES = \ et_intro.xml \ - et_architecture.xml \ + et_tutorial.xml \ + et_desc.xml \ et_examples.xml \ notes.xml BOOK_FILES = book.xml -GIF_FILES = \ - book.gif \ - live_trans.gif \ - megaco_collector.gif \ - megaco_filter.gif \ - megaco_tracer.gif \ - note.gif \ - notes.gif \ - ref_man.gif \ - sim_trans.gif \ - sim_trans_contents_viewer_collector.gif \ - sim_trans_contents_viewer_mgr_actors.gif \ - sim_trans_mgr_actors.gif \ - sim_trans_move_actor.gif \ - sim_trans_write_lock.gif \ - user_guide.gif \ - warning.gif +IMAGE_FILES = \ + coffee_order.png \ + live_trans.png \ + megaco_collector.png \ + megaco_filter.png \ + megaco_tracer.png \ + sim_trans.png \ + sim_trans_contents_viewer_collector.png \ + sim_trans_contents_viewer_mgr_actors.png \ + sim_trans_mgr_actors.png \ + sim_trans_move_actor.png \ + sim_trans_write_lock.png diff --git a/lib/et/doc/src/live_trans.gif b/lib/et/doc/src/live_trans.gif deleted file mode 100644 index e2070f89e9..0000000000 Binary files a/lib/et/doc/src/live_trans.gif and /dev/null differ diff --git a/lib/et/doc/src/live_trans.png b/lib/et/doc/src/live_trans.png new file mode 100644 index 0000000000..94192697d2 Binary files /dev/null and b/lib/et/doc/src/live_trans.png differ diff --git a/lib/et/doc/src/live_trans.ps b/lib/et/doc/src/live_trans.ps deleted file mode 100644 index 8855f2694b..0000000000 --- a/lib/et/doc/src/live_trans.ps +++ /dev/null @@ -1,1559 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/live_trans.ps -%%CreationDate: Mon Oct 14 17:29:47 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 429 326 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 310.991634 translate -414.655512 -310.991634 scale -% Image geometry -496 372 8 -% Transformation matrix -[ 496 0 0 372 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 496 string def -/gstr 496 string def -/bstr 496 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 85402 ASCII Bytes -colorimage -!AQV60nB=U!.b->!<4eQ3Ih~> -r'Z)9JH16$RfN@SJ,~> -"DW"!C3+q+JH16$RfEJ1CAr:)~> -r]0uYnc&U&JcC<$JcFp5!56GQrr<*\0faa~> -r^?bdnc&U'JcC<$JcFp5!5?MRrrE$dJ,~> -rcA)>nc&U&JcC<$JcFp5!56GQrrE%>J,~> -s"OQTs8VWG!53s6J^o>%kLBRGa56ja!WY5@J,~> -s$Qngs8VWC!5=$8J_#D'kLKXIa4gR]!WYVVJ,~> -s)S5As8VWG!53s6J^o>%kLBRGa56ja!W[:_J,~> -!]^8\n(n&XJ^o>%J^rr6!56A.!lY-oJ,~> -!^m%gn(IcUJ_#D'J_'#8!5?G+!l=q*J,~> -!cnAAn(n&XJ^o>%J^rr6!56A.!lY.\J,~> -!\j]Tn(n&XT%*h[J^s#8!6'N>jOF7D`SL[8!&9!~> -!^m%gn(IcUT%3qbdXg!7ecEqAdanHHQIZ&M`S(C1!(;>~> -!cnAAn(n&XT%*h[J^s#8!6'N>jOF7D`SL[8!- -!k7Cec1lXeHNpfe\-a8eH(S\^t&ILpXKAZH[D":eHLSPe^]nKpXK:sHi;Iq -UqN;K!57RPpRLp5s.'&Es.'#D!NZ9O~> -!gAdT=g&\>VJ,~> -!k7Cec1lXeHNpfe\-a8eH(S\^t&ILpXKAZH[D":eHLSPe^]nKpXK:sHi;Iq -UqN;K!57RPpRLp5s.'&Es.'#D!NZ9O~> -!k7dec0srMuM6.UjIaYec1m+eH*Y&gsm"UHaM=]Hc=O"Ph"<:He$Zc]uAM& -K6tDas-39.!fMEEiRJ*aHe$Z2PkW]/K7!RI!jm5b -! -!k7dec0srMuM6.UjIaYec1m+eH*Y&gsm"UHaM=]Hc=O"Ph"<:He$Zc]uAM& -K6tDas-39.!fMEEiRJ*aHe$Z2PkW]/K7!RI!jm5b -!k7dec'n!c.1?sH\:&&!J>aSeHLkqe^];!qpbk&He$Z!Hc=M9K6suU!J>aW -eH(;Lo@3koHi2CpP`)*_!57RPpRLs6pRM3=!NZ9O~> -!-D's+/tR"c8MmdXcuHdf4mudf4m;df4m*df4mVdf4mi -df4mrdK,ViS^IMPkLTBqp=Au+rRM"P!.Y~> -!k7dec'n!c.1?sH\:&&!J>aSeHLkqe^];!qpbk&He$Z!Hc=M9K6suU!J>aW -eH(;Lo@3koHi2CpP`)*_!57RPpRLs6pRM3=!NZ9O~> -!k7deL>itHaM>BH\6t$eVf@!K6suUe]!GnK='1Z`J](iK>#ffHe$*"H[C[i -r7(eCrd,^*Mi4Zp`KY^rMoF5sXG_FPMp9ekMgL)`e^]S9XGd&-"MK/qeXZVc#gJ!Ke^];!eYN1k -s2>D)H\8]UeVf?eMq*H,qpk_)*PI)P[+3-[H[C[ie^]S9]n:[=["E_4e^_WsH\8^)eHDChK6qt? -ec1O<["F:]e^]S9XGbW1MgLA`rm_pgMgKf/c.0dkH\8]Ue]!GnH\9#^`J](iK>%*2$\NfVeVf@! -K6suUSGmj=c)chMMlc['s,.5tK6suUeZ=[UMlcp.)2!:deUr5!eVf@!K6suUeUr5!c$QPB]mIGa -eH!;GhY3Q5hYE]>h>s\XJ,~> -!j)NK'co`fYh#NP+uTdZ'6_NREB/qpPM(*P-rUZI6aTJUNNldaF,7[Y9:8[Y9:,!+dKH+lJUN+E -df5:;[Xj:TdaF,7V2`p+M1(5`rmD^fM1'f/b0n.hI>+uTd__,tI>,,X_NBCtKspg*s+13us,@2n -Kn6PXRJqU -!k7deL>itHaM>BH\6t$eVf@!K6suUe]!GnK='1Z`J](iK>#ffHe$*"H[C[i -r7(eCrd,^*Mi4Zp`KY^rMoF5sXG_FPMp9ekMgL)`e^]S9XGd&-"MK/qeXZVc#gJ!Ke^];!eYN1k -s2>D)H\8]UeVf?eMq*H,qpk_)*PI)P[+3-[H[C[ie^]S9]n:[=["E_4e^_WsH\8^)eHDChK6qt? -ec1O<["F:]e^]S9XGbW1MgLA`rm_pgMgKf/c.0dkH\8]Ue]!GnH\9#^`J](iK>%*2$\NfVeVf@! -K6suUSGmj=c)chMMlc['s,.5tK6suUeZ=[UMlcp.)2!:deUr5!eVf@!K6suUeUr5!c$QPB]mIGa -eH!;GhY3Q5hYE]>h>s\XJ,~> -!U4eH!;[bpe"0H^)dNP_4V5c%CA$S9on5`IifVP^CBoMgMhE[(X_:Hd07*]sN-Er66G) -H[EHNK6rNP]r\oSH]-.EH],8!Lr`Qa$^MkpVV -]p*l_c%CA$Us4gMqopL@H]+D@K?_*2]sN-Ec-:lfMk#-@Mk#-Hc,G -!$@?c@LD#Tm_X?b(58XQ$pZtM1)hH[_C%Q7GI>P8OYGL!IE8^:&HHcH^uhNM1cKNM1cScH:]l\s7]`cCoZ[^4Ck1c7a`s -Od1?[cH^uhM5@5#Q+iN3Wm7GhM6aRi`l`jd\s7]`cA?tX^:(c$M1)hH[_DR_s+13q&V5@eTm_X? -`drQTWdU/HQ$o\-c7+M -kL'?uq9f82o[ -!U4eH!;[bpe"0H^)dNP_4V5c%CA$S9on5`IifVP^CBoMgMhE[(X_:Hd07*]sN-Er66G) -H[EHNK6rNP]r\oSH]-.EH],8!Lr`Qa$^MkpVV -]p*l_c%CA$Us4gMqopL@H]+D@K?_*2]sN-Ec-:lfMk#-@Mk#-Hc,G -! -!0Ob(Z3ZA""Xc@LD`c@LPlY'm"dY'mIuM1(r3rm(OprltV_^4D"8cMrIq -c2rQFb5TZk_S1STc@p\`rQYbQIA+fdIBLkHIEMK5!L8*4cMrIqcMrIqcMrIqcMrG'cE;Shb-$/q -c@LDdpW`qnIE'Q`Jc -! -!B!XF$aic%CYnc%CAfc%CAfV#5QOUs6lCH[C[ac%CAf]n:rqH\;4?&;,>S -c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%gP^EDS%tf5Rc%CAfc%CAfc%CAfV#5QAUs4O=p<=M. -Hd0ffHd06VK8Y)/c-:lfc-:lfc-:lfc(t8a#GfUkHd0ffHhbhpK6tkfH[F#^K6tkfH[Gb:s*Fgl -H[G\8!2TO>%]%@gP^@b8^!4N\H[C[aq99J'Hd0ffHd0ffHd0ffHd-narltIiprs(sHd0ffHd-na -rltIis3271Hd0ffHd0ffHd0ffHd0ffH\6[arlkIjPb-,"^&6C\^%n/u^%TtVSGC\8SFtG.SG^n< -X8mb~> -!P`RV9ZrCI=7*hc@LPl\qP]pI>.RDs+13q -s+13q#eG_@NI?N+I=;%=!2]UA"/X:oJc!^nQ$rYWs+13qs+13qs+13qs+(3rV>P`DV9XXCpNNprltOmQ(H8$^AQCZ](q`o](XPPRJG82RJ##(RJbJ6 -XoNt~> -!B!XF$aic%CYnc%CAfc%CAfV#5QOUs6lCH[C[ac%CAf]n:rqH\;4?&;,>S -c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%gP^EDS%tf5Rc%CAfc%CAfc%CAfV#5QAUs4O=p<=M. -Hd0ffHd06VK8Y)/c-:lfc-:lfc-:lfc(t8a#GfUkHd0ffHhbhpK6tkfH[F#^K6tkfH[Gb:s*Fgl -H[G\8!2TO>%]%@gP^@b8^!4N\H[C[aq99J'Hd0ffHd0ffHd0ffHd-narltIiprs(sHd0ffHd-na -rltIis3271Hd0ffHd0ffHd0ffHd0ffH\6[arlkIjPb-,"^&6C\^%n/u^%TtVSGC\8SFtG.SG^n< -X8mb~> -!amboD@_ -c-:lfc&6qnc%CYnc%CAfc%CAfc%CAfXF$K8blr`H`Q`aVprsS,Hd0NVK?_YnHd0ffHc=7KH\9Rq -HbKC&!j$a=qTT,]UjIanblbq\H\;.='n^kXc%CAfc%CAfc%CAfK6tS^`I!74bpe9lc-:lfc%CA^ -c,G$^c-:lfc-:lfc-:lfc-:lfc-:lf[!S%^c,G%"T$78Kr71P3p=0/5q:,J8p=8o-rRCqM!.Y~> -!,stJ^07+b0G]pqp,4ms3CXq -s3:q1J]c8lL!GC#^AZ=YY'm#AcMrImc5*+%`m2k\J^2PlJ^2PlJ^2PlJ^1EHU&<49JbIChJcF$q -JJQOjJ]c8lL!ItpJ^2PlJ^2PlJ^1EHU&<1>JUP\`JV!UAs+(m0b'euhc@LPlcA?thcGk9hc@p\\ -rQYJIIA-M_"3.$_L&T@"`h@g7q9K"ks3CXqs3CXqs3CXq#L80S`m2SPM>5BrJcF$qJKrHsIE'RP -I>Q7pJUu+lJUu+lJUu+lJUu+lJUt7XQ-R[pIA*7X!5ABZpR1a'!1EZ2!1EQ/pR2!.!NlEQ~> -!amboD@_ -c-:lfc&6qnc%CYnc%CAfc%CAfc%CAfXF$K8blr`H`Q`aVprsS,Hd0NVK?_YnHd0ffHc=7KH\9Rq -HbKC&!j$a=qTT,]UjIanblbq\H\;.='n^kXc%CAfc%CAfc%CAfK6tS^`I!74bpe9lc-:lfc%CA^ -c,G$^c-:lfc-:lfc-:lfc-:lfc-:lf[!S%^c,G%"T$78Kr71P3p=0/5q:,J8p=8o-rRCqM!.Y~> -! -!Q*tJ]`gtWiCJq^AQ+q -M1)hPJUttdM1)D(I=8i0I>+i4Wkuc0IAOBTZH@`LqoTqjIBL`8JUttdJUttdJUttdM1)hLKmff+ -Y-Q3$JcPHqJcEmmJK`0mIB';qID3jTJ]c,dJ]c,dJ]budIAOBTZHAG\Q'$KGpr`Vf/\[p, -TutN/J]c-8I?hC/IAP)dI>+i4Wkuc0IAOBTZHAlH^9W0Db+Z,TZ@.T*b5[%mb5[%mb5[%mb5["t -b,TlT\s7]?pr`Vfs2t@m,Kd$7Q+E6/V96r3J]c,dJ]c,dJ]c,dJ]c,dJ]a7+Y0*nq[[tVA^AQ:N -Q1iK'Q2/]*Q1iN%Q2f/.Q2Su/XoNt~> -! -!B -H\8Eobm]5Oc-:lfc-<>BH\8F!bnu([c-:lfc-:lfc-:lfc-:lfc,GU,ec20 -!+iHQ%=@7Q+kClJ]bETI@['[RJb2LZ@RS< -JUttd[Y9.#Tm`?OWel.PM8%-LQ%=@;Y0)+^#ar7::I=6sdb/0EpI>+iHQ%=@7Q+kD+JUN*7^A5qOJcEmmJcEmmJcEmmJcEjqV1j>O -WqX[9JcEmmJcEjqV1j>OWrC0@JcEmmJcEmmJcEmmJcEmmJHj9:JUth#NLe2l^AQ7V[eZ0g[eA#@ -Q1`H&Q2T#.Q2Jo.XoNt~> -!B -H\8Eobm]5Oc-:lfc-<>BH\8F!bnu([c-:lfc-:lfc-:lfc-:lfc,GU,ec20 -! -!@I0.!2J^_d -! -! -! -! -! -! -! -! -!A^;S.pXoNt~> -! -!!%S&JV/N+PCii8J,~> -!!%S$JUrB'PCW]6J,~> -!!%S&JV/N+PCii8J,~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~> -! -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~> -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~> -! -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[OebI\pK*A(Nk2s>WJ,~> -!]` -! -!]` -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(N -k2s>WJ,~> -!No\0No\0 -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(N -k2s>WJ,~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%s4..%"f21\k.LbF~> -!_)\!!(a,!!(^Q!87DQg=cN,J_G\/s4[L("ektYk.1PC~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%s4..%"f21\k.LbF~> -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^seNs+:KNs5rIW!.Y~> -! -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^seNs+:KNs5rIW!.Y~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[Oec42"K*A(Nk2s>WJ,~> -!s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N -gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN -!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTgAfn,JH_bIk2s5TJ,~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[Oec42"K*A(Nk2s>WJ,~> -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(Nk2s>W -J,~> -! -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[Oec42"K*A(Nk2s>W -J,~> -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%rmh%$"f21\k.LbF~> -! -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%rmh%$"f21\k.LbF~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -!Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg'+2Mk2s5TJ,~> -!WJ,~> -!WJ,~> -!Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg'+2Mk2s5TJ,~> -!WJ,~> -!]` -! -!]` -! -! -! -!%"f21\k.LbF~> -! -!%"f21\k.LbF~> -! -! -! -! -! -! -! -! -! -!]` -! -!]` -!%j4+=/ -s5rIW!.Y~> -! -!%j4+=/ -s5rIW!.Y~> -!]` -!^fiU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -! -! -! -!]` -!.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~> -!]` -!%Nn" -! -!%Nn" -!]` -!.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~> -!]` -!%Nn" -! -!%Nn" -!]` -!.H!<1^P!<:dQ!.ijTg5akjU&X9;\c@6~> -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!m9j1YKmp!j(qs7OqBKE(t&eb@StV#TT> -]` -! -!m9j1YKmp!j(qs7OqBKE(t&eb@StV#TT> -]` -! -! -! -!m9j1PHmjFdL4J^sMF"f21\k.LbF~> -! -!m9j1PHmjFdL4J^sMF"f21\k.LbF~> -!n&_uG; -! -!n&_uG; -! -! -! -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -! -! -! -!t$^&S-0eHMcKk2s>WJ,~> -! -!t$^&S-0eHMcKk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!9\s7OqBs8CLJs.%U>s7+V>s-qO=s7+Y>s7=e@s68)6K*&ads7t4FKE&Xbs81=M -V#TT>]` -!puf!;5(G!<(XO!1_aC!:ebC!1V[B!:eeC!;"qE!9r5;JHE^gs7tCKJcEUes81LR -U&X9;\c@6~> -!9\!;4nB!<(IJ!1_R>!:eS>!1VL=!:eV>!;"b@!9r&6K*&ads7t4FKE&Xbs81=M -V#TT>]` -!]` -!o9LV>o9LV#]6IV#]6KV4-* -!]` -! -!f0VV:sY"g=iCWg83N"rn7RQg=iCWg82+/rr<>Y!8?-, -!87DQptG]Is4[GPrS%8Or7V,Nr7V,N\(^i^#MK13g&Th,!<(XO!<(XN!<1^P!<1^P!;G4G!!M!U -!87FdgA_-Xg&Tj\!87DQrS%8OrS%5Nrn@APrn@APp"BBGrS%8OrS%8Orn7GSg&M-PgA_0Pg&V3- -rW)cJs+14Momm1]s8VuM"ektYk.1PC~> -!T!7fU" -!7_&Lpso?Ds4.)KrRLoJr7(cIr7(cI\(1KY#Lrh)eH","!<(IJ!<(II!<1OK!<1OK!;G%B!!LgP -!7_(_ec,USeH".M!7_&LrRLoJrRLlIrmh#Krmh#Kp!j$BrRLoJrRLoJrm_)NeGoUKec,XKeH#[# -rW)cEs+C@Oon*=Zs8VuH"f21\k.LbF~> -!]` -! -!m&!7_(`eIqr5!7_)"eH".M!7fU"e^XZMeH#Hr!!)rI!!)`C!!*#K%KP&0!7fU"e^XZM -eH","rm_)Ne^X[!eGoUCec17%s7:mCs81=MV#TT>]` -!]` -!f0`V:qcBg=iCWg83N"g83N"g=iCWV5:KO$38c[g&Tj\ -!8?-,ptG`Jrn7MUg=cP\gAV*Mg&M-Ng&M,^g'du8!87G,g&Tj\!8?0+!<(XO!;tON!<1^O!;G1I -!<1[T!87G,!5@.q!87G,!8?-,g=cP\gAV*NgA_0Ng&M-PgAV*Gg&M-Pg'.Q2g&Tj\!;tRN!<(XN -!<(UO!;>.HJb$\Xs81LRU&X9;\c@6~> -!]` -!j%ec2r*$NJZVec41M -s4,["p=0TOe^a]Mec41Ms4,["rRCoJr7(fI\()&iec42"e^a]Mec41Ms4,["r7(fIrRD,Pe^a]M -ec5Bo#liH*s8UXLec3A6&HC;\ec41Ms4,["e^a]Mec5Qt!<<#J#636(s4,["p=00Crm_MYe^a]M -ec41Ms4,["ec5X!"96p%s8LOKs7Y"CKCJpWJ,~> -!.HJai^:g'+2Mk2s5TJ,~> -!6&-15\eH".M!7fU"e^XZMeH#Nt!!)uJ"p!3(!7fU"p=0-Crm_JYe^XZM -eH".M!7fU"eH#U!!s$m%!<1LK!;=tCKCJpWJ,~> -!j%s4.&I#1`bRe^a^"rmh#JrmgrH"P*PPec5Hqr;ZfIs8W&Js8W,Ls8N/Ns8W)K -s8W)KrVuZCs+BqC!e^OQqpbkGs5rIW!.Y~> -!N\_7,cg&Tk)!!_-W!8?-,!<1^O!<1^M!!M!U!87GIgA_-W -g&Th,g&M,fg&h?/!8@>N#20%Wg=cN,rn@>Orn@8M"PNhUg&Us&quHcNrrE#OrrE)Qrr<,S!!*#P -rrE⪻cWHs+0eA!eLCOqq;4Is5rIT!.Y~> -! -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!d$s,,>,s0gJXKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -!PrRq>Rg=cQ+ -g&M-&g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -! -!PrS%5NrRq5O -eCjm&MV8%1[bCb4o"tG,qq;4Is5rIT!.Y~> -! -! -! -! -!,s0gJXKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s0gJXKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%s8W&Js8W,L"om-Qec5[Gec#OIec5[Jec,T_eH#W,eH#WXec19m -^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!,s0gJX -KCZ_Us81=MV#TT>]` -! -!]` -!,s0gJX -KCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -!Prn7GSg=cP@g&M,1g&M,] -gAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!aMU__,[akD1 -o"G)'qpbkGs5rIW!.Y~> -!.H!<:dN!<:dQ!!1dR^Y/YfMV8%1[bCb4 -o"tG,qq;4Is5rIT!.Y~> -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s0gJXKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!W -J,~> -! -!W -J,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#J"96p%s7b%D -s8LOYs4,["e^a]Mec41Ms4./4eH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#Jrr;]B!<<&K -#636(s4,["r71iIk1'J3MU__,[akD1o"G)'qpbkGs5rIW!.Y~> -! -! -! -! -! -!,s0gJXKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%s8W)KrVulIs8W&Jrr9^_!<7r,!<9LX -s+BmUs8VuH"f21\k.LbF~> -! -! -!j%ec5X!!<;rH!<<&K"96p%s8LOKs8CISs4,["e^a]Mec3A6!<7r, -!<9LXs+BmUs8VuH"f21\k.LbF~> -! -!6!!%o, -!!'IXs+BmUs8VuH"f21\k.LbF~> -!j%ec5X!!<<#Jrr;uJ"96p%s8LOKs8CLIs8LONs4,["^=<5`MU__, -[akD1o"G)'qpbkGs5rIW!.Y~> -! -! -!j%ec5X!!<<&K"96p%s8LONs4,["rm_MYe^a]Ms4,["e^a]Mec3A6 -!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~> -! -!6 -!!%o,!!'IXs+BmUs8VuH"f21\k.LbF~> -!aMU__, -[akD1o"G)'qpbkGs5rIW!.Y~> -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -!j%ec5Tu!<<&K"96p%s8CIJs8LOKs8:CLs4,["psfBEqpb]H -rm_,Ne^a]NeH#W,eH#WXec19m^&S-0eHMcKk2s>WJ,~> -!]Jqq;#M -rn7GSg=cPXg&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!j%ec44N -!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~> -! -! -!j%ec5Tu!<<&K#liH*s4./"ec5Ns#636(s4,["psfKHe^a^! -eH#XKeH>j%ec44N!<7r,!<9LXs+BmUs8VuH"f21\k.LbF~> -!fMg=cQ+ -g&M-Pg&h?/g&T^X!!%o1!!'I]s+0aXs8VuM"ektYk.1PC~> -! -!d$s,,>,s0gJXKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!W -J,~> -!g&M,1g&M,]gAc`p_Z0Z5g'+2Mk2s5T -J,~> -!W -J,~> -!WJ,~> -! -!WJ,~> -!j%ec5Ep!<;uI!<;rH -!<<&K#636(s4,["qUGTGrm_,Ne^a^!eH#XHeH#XKeI2E-ec41Ms4,["ec1NW!<9LXs+BmUs8VuH -"f21\k.LbF~> -! -! -! -! -! -!j%ec5X!!<<&K$iec-s4,["e^a]Ms,,>, -s0gJXKCZ_Us81=MV#TT>]` -! -!]` -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s0gJXKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -!sW8Jc*Cbs81LRU&X9;\c@6~> -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -!o/`_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -! -!!.f^ -! -! -! -! -!!)uB!1`r:s+C-\rVm&OK7gl;s+])(K7U^e^#6U(s8UXJs8'G/s5qi8SB\a\S,e'~> -!!)u?!1E` -!!)uB!1`r:s+C-\rVm&OK7gl;s+])(K7U^e^#6U(s8UXJs8'G/s5qi8SB\a\S,e'~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!m9J\C!Ts8W,LrIas[s8V63"e -! -!m9J\C!Ts8W,LrIas[s8V63"e -! -! -! -! -! -! -!rT]n*lT]`J.coY(;)k1'X*c+Uf\!.Y~> -!lR_L]S^_?'[foYUY.k1U!,b.>0P!.Y~> -!rT]n*lT]`J.coY(;)k1'X*c+Uf\!.Y~> -! -! -! -! -! -! -! -! -! -! -!Tn/ngTtR-"](26hb5SsQR/ha~> -! -!\j]"rOqgI!53s`JcC<$^&RWIrk/B'!',Q~> -!^m%2rOVUC!4ma]JcC<$^&RWFrji0!!(;>~> -!cn@drOqgI!53s`JcC<$^&RWIrk/B'!- -!]^8*n%A^kJ`_OGJ`aZ.!6suG!h96FJ,~> -!^m%2n%&LeJ`_OGJ`aZ.!6XcA!gs$VJ,~> -!cn@dn%A^kJ`_OGJ`aZ.!6suG!h973J,~> -">Mn:S=K,_!1\W&J`_OG^#f=>n\+sm!WY5@J,~> -s$QngR@3TV!1AE#J`_OG^#f=;n[eag!WYVVJ,~> -"DVuXS=K,_!1\W&J`_OG^#f=>n\+sm!W[:_J,~> -">Mns!!)MYJ\?WJJ\A_0nXTUZ!]_tqJ,~> -r^?bdn -rcA)>n=5'CJ\?WJ]Y3j*rr<+AC3+n~> -!BDn63Iq0]!.b->!!G#:0f^t=~> -r'Z)9JH16$RfN@SJ,~> -!HW#TF+F=B!.b->!;png~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/make.dep b/lib/et/doc/src/make.dep deleted file mode 100644 index fae2cd02b3..0000000000 --- a/lib/et/doc/src/make.dep +++ /dev/null @@ -1,53 +0,0 @@ -#-*-makefile-*- ; force emacs to enter makefile-mode -# %CopyrightBegin% -# -# Copyright Ericsson AB 2002-2009. All Rights Reserved. -# -# The contents of this file are subject to the Erlang Public License, -# Version 1.1, (the "License"); you may not use this file except in -# compliance with the License. You should have received a copy of the -# Erlang Public License along with this software. If not, it can be -# retrieved online at http://www.erlang.org/. -# -# Software distributed under the License is distributed on an "AS IS" -# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -# the License for the specific language governing rights and limitations -# under the License. -# -# %CopyrightEnd% -# ---------------------------------------------------- -# >>>> Do not edit this file <<<< -# This file was automaticly generated by -# /home/otp/bin/docdepend -# ---------------------------------------------------- - - -# ---------------------------------------------------- -# TeX files that the DVI file depend on -# ---------------------------------------------------- - -book.dvi: book.tex et.tex et_architecture.tex et_collector.tex \ - et_examples.tex et_intro.tex et_selector.tex \ - et_viewer.tex part.tex ref_man.tex - -# ---------------------------------------------------- -# Source inlined when transforming from source to LaTeX -# ---------------------------------------------------- - -book.tex: ref_man.xml - -et_architecture.tex: ../../examples/et_demo.erl - -et_examples.tex: ../../examples/et_demo.erl - -# ---------------------------------------------------- -# Pictures that the DVI file depend on -# ---------------------------------------------------- - -book.dvi: sim_trans.ps sim_trans_contents_viewer_collector.ps \ - sim_trans_contents_viewer_mgr_actors.ps sim_trans_mgr_actors.ps \ - sim_trans_move_actor.ps sim_trans_write_lock.ps - -book.dvi: live_trans.ps megaco_collector.ps megaco_filter.ps \ - megaco_tracer.ps sim_trans.ps - diff --git a/lib/et/doc/src/megaco_collector.gif b/lib/et/doc/src/megaco_collector.gif deleted file mode 100644 index 56a2c5891e..0000000000 Binary files a/lib/et/doc/src/megaco_collector.gif and /dev/null differ diff --git a/lib/et/doc/src/megaco_collector.png b/lib/et/doc/src/megaco_collector.png new file mode 100644 index 0000000000..d5c2cde7e4 Binary files /dev/null and b/lib/et/doc/src/megaco_collector.png differ diff --git a/lib/et/doc/src/megaco_collector.ps b/lib/et/doc/src/megaco_collector.ps deleted file mode 100644 index bdc603f087..0000000000 --- a/lib/et/doc/src/megaco_collector.ps +++ /dev/null @@ -1,3247 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/megaco_collector.ps -%%CreationDate: Mon Oct 14 18:04:40 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 433 458 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 443.079478 translate -417.999508 -443.079478 scale -% Image geometry -500 530 8 -% Transformation matrix -[ 500 0 0 530 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 500 string def -/gstr 500 string def -/bstr 500 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 194862 ASCII Bytes -colorimage -"4bhXB)#L068!gRJNn]M`]jGHoiV;t7J0da:/CXf"%jdo1k5~> -"5;@eBD>U16Sa3Zq*KWuJO.RI!$q5?!E_b_=TM8npfR\n/42gU~> -"4bhXB)#L084%l+JQ%+u`_ujnoiV;t7J0da:/CXf"'&!2F+=~> -"k%V!e`,ckkQ'lHmK'S4JX5tp -%bH$2e`5cQk32'qm-_6-MP'sAnXb<&hOOY -"k%V!e`,ckkQ'lHmK(25J`<$U($"<5j5T+YioB%Yio9"XioB%Yio9"siX"T(ioB%Yio9"si]#oW -ioB%Yio9"XioB%Yio9"Xj5T(Yio9"Xj5T(YioB%Xj5T(YioB%Xj5T+YioB%Xj5T+YioC!s#ijq( -j5T+YioC!s2rioWj5T+YioB%Xj5T+YioB%Yio9"XioB%Yio9"Xj5T(Yio9"Xj5T(YioB%Xj5T(Y -ioB%Xj8IsCj5T(YioB%Xj8IsUj5T(YioB%Xj5T(YioB%Xj5T+YioB%XOn%E0iW/0@kQU8>md%pU -ro*q -"H0M7e_C)[#2nV*k3/jIX)J#\d;Nc=EGoiF)Q,?E--&>F)Z8AEcc5BEcH>C -F*;JGEcQDCF`h\KEH?;AH?=4TDg-DFHZF7SDg?JHIrBOWE.)eLI;aLWF+A4SI<'g]FanFYH?4RX -G^XR\G]eLVH[A;)Jou9gEI`@WK5uBhF+e^^JoQ?gFbFd_Irg6dG_0sdI!(-aH[p-hG^"d\Isc?k -FF&IXK6_ZnEdiFYKQMNkEIrL[K5uEiF*!"WH%BseH?Fm]I=HlL4jorf`e^`:-rn[Y7roO70 -iVq@-f`'_2hrNq^O -%Z[dDf%Jd3hV[>Qk3&pXX*XksJC]'EI"$EjI=-HjI!p?iI!gBiIXQTnI=6TlIXZ]qI"$QmJUMrt -H[pWoJp`'"H\6itK7/<%I>!'!KRAH(IYE3%K7/H'J:r<(JprN(Jq\W.J:N-(I>*<'MLC,4I>NN* -M1(,3IYiN+LOG&3JVnl1Kmnu1K8P&6K7Jo/L515:J:`Z+MM-M>I>*K+N.HV>I#i`/ -Mg^G:IuSo2M1(A9JrP28LOY>6KSt5;KS#54M26YBJ;&r0NJ)kDI>E`/O+;nCI>ir4O+)k1Mgg\= -K8k>rr4O+)qCIuf/6NI?e@JWG89MLUY< -KT1D=LOkM9LPpVAK7f25MhlnEItio2NeE%FIYrr3O+;qCI>(_gdacq%g=tKAioB1_`ST(of@npm -gtpuKjQ=eHdaQe"g=kB>iSrs\/:[~> -"H0M7e_C)[#2nV*k30LUX31Iee&m0ab0%rNbKe8Tbfe;Sbg";UbKJ2Rc-4AVb08,QcHFDVb0A/R -cH=AUb0J2RcH=DWb0\>UccXPXbL"DVcH=JVbg4GYc-4SXcI'k`ccsk]d*U"ac-F_\dEg(bbg4Y[ -dE^%ebgXt`e]cChbgaq`eBH@gbgjtbe'-=fc.'u;dWZ72ir8'@ -dc(2U!8.;-"lJD'k)`5d~> -%VF8Ag=Xj1i8s"NkO#?LqIp"GD//HP!GuWHB`W!co4\8\]P$SF$u19WJCM'BJWe5iCi&BN"cpuB -\YNp6Bf'aEC2Rg&D/*p'OH"$lD/*p'C2Rd'Chds)DJs90Chn'+E,KE2CMn6/Ec>f=CiXW4GA_;J -G&)5ACjBr>G&2ABDg6,CFDQ>CF*MMIEGp2@GBReME-$>AIWKFWDL$JCIrTRYCjgACJ8]^XD1?PH -I;OCSDLcYMHYn7REdqtSG&;hMGC47[F)lkMIX#^`EHltLJol!bDLHeIKQ23dD1ZkKKPu6aD1lqQ -JSfs\DhN%UG^O@\EclqMJTbpbE-cqLK626lDh<@RMfX5uD23=VM/RroD2NF]L2DZiEf"acIr1$a -G_^-iH#SX\It2BmFa&UXKmIZqEd`OVLj!rtDM*:RMfO2tD23=WM/RuoD2WI^Kl)TiF,=jeIVjsa -H%p0jG]AU[It%lDM04&uD2!4,mFBbArn\"?jlY^hlc7r6aD(Tf&o=u -%VO>Cf[S7'hrW?*JpE<&Jr"Z0IXI*#LP'l3I"@-!Mh-58H\R8G -H&[9'Mg:22H]WW0Lj>&2J;ni4K6iZ-Ko()8J:ET*MM-8:I>!K'NduS>HAR?$OF;b?G`@9&O*c\; -H&mE+NHpM7I#r]1LM_HAdE$OaMk?H&dE)Nd?S9H'!H-Mg:;4IZJi4 -KmAc.K8b&7JUNT+Lkg8:IY*Q)N.FsneCN=,gYUiIj6#Of_qrqcB4tsmCMgKAkgA89f$]#7g=LYK -jQ=NFJ,~> -%VF8Ag=Xj1i8s"NkO#sXqSWHS`l7>`!QN+Q_u[iso>C^WkJ?N'%)pNDbjOEQbgl$q`l75]"k;qT -jk7QH`;do.`5op;aMl3>f%%aZa2Q-=`Q6$=`l6$<`lH'>`l6$Vs2m:Ja3`&Me&fh[`mMrNdDsSW`mVuQcc4ATajS8Uc,S2R -bL"8VbK/,QcHXAWaii&Od)q13e^`FRh?r3&k2tmna5GLhC&McZCpiEje`#'/dX[eAf6F7Uk/p)B~> -%U%fGfQ0d"jlV^nZ0n\eqHj;A]OpS=!arT_pKmueT3V"q!d'MolsC3@ctf]!8!?o@j@,l*?0bi$ -Q0LcbSQ5Jm&n&Cs@UNSQ?XdGNG0tPC?XdDNIpubr@piqV@qB"Z@UWtXAS>Ic@qBIaCM70p@:s=` -D.R6o?ts@bDdd?t@;ogiE+*U!@rc$lDIIQuAoV6tD.@]uC3!^)C1_ZuEH#E5ASZErG&(];@;pHu<\HA9E!*I;!MG@XW61J7NbH -AUeH3I:@PDBRjW7H";D?Cjol?F(^&8FF%JJD/Fc4HZ`tQAo`6.J8T1Q@sN61JnK(N@Xi?4J7NnK -Aq=Z8I:@\GC4To=G\)G@Dgc)CF(p5:Fa7MKCi4]3Hus%RATN0.J8K-QIq*eIB7a`9HXhSECOfo? -G%Q>>EI;5FE,'o6GB[YMBlAE/IWAdcmFBtjh>lL5jp(&;m)S&9b54I:V!II!iRQSL5s^BE5sa/i -ha2h~> -%U%iFe8\0oio?7kXm<&jqJ-.Y_/esZ!c>]&pM0i%V.oR;!e?\dt2LREGfW6CiFB2Ec,f9CiaQ5FDZ#-aK7J!$EdNRZM0a?' -Dh3L[N,s<$DMW[_Mf4,uEJnsbLi.urFGt-fKQ)flG_p)TsG^#$_KRe*%EIf9efg -MJbgMf]h-VJ,~> -%U%fGfQ0d"jlV^nZ0o;pqRH[Djgslj!kRI0pUL@Tf!k:^!lDd@m(!SAl`&@cMoh:8nrhbQ\Eg[/ -deAjk^oR:AICeLV]=GPe\\5Vd`p(@Q\\5Sd]t(ef]"P\e]Xb_e]>1tj^:M(j]>(nj]Y)(n^VIIt -]tM=q_83e&]YD@r_nWn']>;=q`4Wh%]>MCr`4Nh%]Z%S"_n3n'^;[b%_S!k$^W*n*_S+%'_Ss1. -^V@h$`PT=0]YVS!a1oAha1K=.]u[k&`k0:,^;mk(_n=((^rF",_7mt%_o04/]thY"`kf@0]Yh\# -a1f=/]?%k'ah5R2]ZIq)a1KC/^<+%+`Os=-^rX.._nF1)_oB=1^qaR']>hb%ah>R2]?.n(aLfF0 -]ue"*a1KF/^WF.-`4X4+_8j1/_S4.)`5TC2^VRt&a2>X5]Yh_$ahY^5]>hb%ah>U3]?.k(aLfI1 -]udt)`k0@/^W=(,`4a:,_T0:0_RYBfe_C)[!9!k=#3bLAa5GRlq`tgilgE<^e_$ -)-Q.ZdS3#*^6hG_K^Pm0<)ckE`PH_hrj5o/<$PYKai/ON^W2XBDT/0rK7X!GEjWoR<4&F>Zt\+W -KUg-#Ki@tMBS!s2CUef=9mO^pGEJ_;b'/l&DoK_E?,`n#;cK$i>1`"fdrUc7?0:*mUW9H>RC]YP -cV[Y@A[':qCk9OFLf]Z&5L,g"TuX9AK#Pj,LAfDN]uQUHCrNH&XeA]r$+d1=BILg@^fE>utW@?=R#I>?YW@@U`GU>[V8IBjb.]>%M8p=);/ND-(O^ ->B!eZBj#@]?uB+`@p3kWAnkIh?t"%YDIm!n?"[tVEa`?r>A[tUF^8Tt=`RtXFB`Qq=a"4bFBNWr -?$BRiDHV*kAp7F$B3fjjD/`['@q9ggFD4s+?YjadG[tB4I^HXCN1=a+IdH'j[lG$0!$ -B4#sjDf8g*@V9pgG%b3/?>a^cH"1E1>'4OaHs^`2>'ORgH!>?)>C9dnFBNj"@X24!Cg)0nC3<[' -Amp!kE,Jj+@;'jfG%Y0/?#OXbH=CN3>'4LaHX:T0>'XUhGZo3'>]E-rg]$%=i8s+`l0[p*`8KIp -932$n#u[_ima^.Gh9Tj85m9`Bl0dFqJ,~> -%U%oIcV-W(]U;;YJF9LYFPl/pl_TJ]kIET!S[&IVPBP2-oC2.?sBPDGH>.kJE.<@PI!'1UD0C8?IrTCWCO:5>K5Pj_C4LDEK5>m\C4gJJJSK^W -DM2kQHtn:RFG"=ZG&;tOH@9O]EcZnLJ9PgbDgHnJKQD0gCk6kIM/R]lC5$bLLM_QgCPZqSK5-'^ -E//:ZHu"LWGD'^aG&E+RI=>seEcm(OK6M0gDL?DQCPHnPKkl9bCl*(WJ80g\Ee\C]H>A=UH%Kdb -FE*(QIsYseE-R"MKQV3gD16nKLN.KjC4pbJLi.WiCPQqQKkl@Gg"P3;hr<\YkN_C!_Vj.h -8l\qq>#_Ebm*seBg<=7r6UXM2k3CbgJ,~> -%U%uOdS3#*^6hG_K^QO?rj)jLj5Io)s4F^XZQls5jl*tmiSr4k_!0D8a2\/?^YIksZJjKth7N+H -`7!]&`NoKLCrbSI^>HiiW5[fU`6m/LkJ5?a^uOIp\*;\iZEr!+S*][WlaG43S+Z3df&PJleDoE( -lE7J"]A;Q+]#`mjbI#UiNU4H\f&PMoaQ;F/a8b5BiT&Cs_!0Xlg;pS/['[?M\$iWR[^E]R\@?pn -]!f)Z[CNfU]!]/\[D',\]sYPa\%];_]=#A^\\5D`\[K5\]">Aa\@K;\]XbMc\%TG__7@.m[_TMa -_RI4m[_]Mb_7%+j[_fPe^UCth\\Y_h]XG\e]YCki]"#Sc^V%"l\@fVc^q.(n\%fVb_R[:p[_]Sc -_RI7nGIGB!]>:ql]=>ki^qdCt\\#eg_nEP"\A,nh`O`\#\&5qga18q$[`,ki`OE_$[`H(pa0rt$ -\]D:s_m[Ut]uRS"^UV@q^r3\%]Y):n`5&k(\\Q.l`kB"*\&6"iah#7+[`6"laLB%&[`H%o`jWk# -\]D:t_Bu_4]=l7n`P8t)\\Z1la1T++[`#qjaLT+)[`?%na1'"&\&*d_g]$%=i8s+`l0[p*`8KIp -932$n#u[_ima^.Gh9Tj85m9`Bl0dFqJ,~> -)-Q1[hS)lR6:FIikjkW;:/53IQ(tj3pfBl_:*ZFdCL:,tQttW-Fo.?D[SZaEW6'A<>i*DdohE*5 -6gq$\:eL^^FC+']N2Usi:"5N&]781UpQi:(aeFs=@eus"8l!-^8[uW"p25uQ6.M]ZiHk@H;u]k&$%A4jBOHj*'%uEDdcgh^'1`CfYac@WPIhAm0F[Bk2*]G@"^!<,lSSGZJHq[qeQFCe[#kh"5m:rgmdB($J,~> -"^0sBhRlhd6k=A%n>]5f>AMl\VnIZU@8[#.,H'@>Bk?.nG2e7+qjG[=>k`cLb^eD]i5hP_=MV^J -n#g>0Jle.]u3S;G*qAcf;=8^I,'([gjs%$ -8m>N4dVN];jbeNNH'@Pcd%Z9UIG(+TQ=FT7pP%:sFQ&.'qO(NNdoTm^@U*;K?"@8KA6`YR?=mMQ -AR/qV?tWbXA7'(X@qT(_s'f,H?"dkYD.$pk?>X7`DI.*n?uTOdDd@?r@rl$oDI@NrB6.C#CL_Nq -DK0'/AnZ?pFDYN5?uC$nG\Li8@!$?tHX^f7@!QL"H!k]5@XDX%G@,Z4B7+-/F(Sm0ASZQuHZ!GE -@<-L"IV3GC?[?[&IpmA@@=N!+I:.>AAV"?1H=;8=C49T:FC]r5E-u)EDJ=W0G]mVLAo<$)IrK(P -@Wm!+JnT"M@"**.JmrhI@Y&91IUIPEAqFN6H=DD?CM\K/HZWhO@rZj(J8K%O@HC2AB-HuikO@nc1AgtpuKjQ>[km-j>XinMS5 -i8`n]^8^Mge_Ag4h985S6tbcNmGC3[~> -)-Q1[hS)lR6:FIikjl6FW2R#g]u\a6s,i`KW$B^RTq.Y?]Vb,,]DoM#e"Zl>akj2aVX`BUqO-)U8[%YT\nCTs.IO*N:"H`m],QTgutf1 -\r3Mcgu"WoU@PFgnZg10M<_mfn#PZfoXC0WT`;"R_kc_5\Gs.&`S[5cWirJ)Y,\Y+WirG)Y,SV* -Y-4k2XfSh.Ycr2LZ`C77Wj8e/ZDt.5X0\k/ZDt45XgG+6YcG15YdLL>YcYC7ZEpU@Xfo.4[BQdB -X0T(4\?<*HWjo@:];r\MUG'Z*_0E]sb,ZXgksE^9Y)YXLu$G^TN+RhVR/LjlYakmdBQ4_r]au -N8s'_keXChnCQIph>kh"5m:rgmdB($J,~> -)-Q1\j6"3U84n6hp%G:J8kO!_cH!2+p.e3Y8gD'\5Y,&S@nG[>E;)i/[RKn/alC.Y@bZl[p-cBt -6B0.4M+IS;J%W8&E.7:^jNkiOB&]i0be@B?d_iV(pL-N_9#$?UZarHrDNZFX.:g@4#@T-?9:LI4#@o6H8:M!L-A5Hc<;.id4 -?Vb65=_LWD?;YQ=?tN8N>$,QWPU>ublE -AS+hY=^5fACL:"\DH^7^;ef]=EE6O_;/TT@Dc:=Y;fu/ODGbFZ=`dVYAQ*\Q@W54c>uu/K -C1gIf=^Z5IEF2^hSD,PF[>BEh\A5dYQ@rG4b>uXsL -<,6)EF]`'k;K?)FG#`6i;fu5NEDgd`(QAeT!l@7SoiGoAr;h~> -(g6(ZiSq^Q6pu=[na`VP=BKh1d`Sn>p0%>r,K%5l8 -QHdg?=8l<2=i.bbG_tp$jjM;ZDr[t@cGX>Qf#PF=p1[H-=N6V,\@kZ2G*_5\e=Mtuqp/kFVfM,OV>$YE`>%(W@@U!8J>@UoG -@U!AL?"@/M?s@5J@:WSU?X@GPARo%]?XmeTC11Ib?"dhUD-pgj?#4%YEF3Ep?>s@bE*dHp?ZTUk -DdINsAoqC"BjZ$mCiNd(An?-nEGJp+@V^$kF_50.?u^$jG[kN3??^'mH!t]2?[?9uG[GW/'k2N! -E,o?5B5)["GAL]:@rQQtH>$uAH=:u7@=;[)G$fQ/B7"'1E++6-Dg>];C1_p(G&h#?Ao@Y&*2G[Pr7BmsK8EFFB/E-bo>CM/-+G&h#@AoE$'Hu*DE -@s)m%IqNVG@!c^#J7E\D@")d*I:.A=@Y&'2/U(TOBki')H#I,BARJ0qh;4]0?XR8MZgRDR^u=.o -NoT9blG9Rjo%2OLhUHTF6j62Um-rt"J,~> -)-Q1\j6"3U84n6hp%GnTUSG6ehqQ;Ss,NiQUEeXBOJ&QNR%NlV[/Z$;dZsj+j6bFQT^T7ls,,X[ -PJc8=`M*7*Eo57#U:^8gn_i0FVXM[\hV+:`in;\Qs-T@OUZ&MNgXMAcTZ?VZlat71fA`g\e;g2n -Sti(G^QbCuremKHVo8=akeP11fAagLNLZW=s.oU`U@,V!s,N_dj,^"7V5C2eVl-AjUo1/eWMZYq -V6$SmGH@X@WMQ_oWN2ksW2?\nWiDntVl6\mXJi&!VQHqrZ)=V*V6HqsZ)4Y*V6Qu!YbeP'VQm&$ -XerD'XL>(6YG\n1YI(49XfJq0Z`p@:Wirh-[B6IW3ie-\>ld?Vm`_.\#?XQm?X1P@=Z`(L:YdgUAYH#46 -['ZdCXKT14\?DmEWjB+2\ui-GW40"0]W/9GVn0"4\u<'BW4T(8\#6d>XLbC>ZDbC9Z+-^BY,f16 -[BlgDXK]75\Z`$FWW0=lW4K(6\Z!$BWP#7;[AUU(QAeT!l@7SoiGoAr;h~> -)-Q1ak2tjI=a0!"p@bCK8kN:7V-RMAoj^\p8gBh^Htd9LR!@S-E:uc0[RKb=XjCKb:YUeIp-c4' -:ip-]fKoI.(kM2%7YL8&c_auV<6EpCmB0+&Y?k[?p0dkl(7qEqZarKsDN!dWB8FjF`!E?ARl.baj"?G@,IQRV->5nqZ"mGi*RUp.S)NY>/.!:0^On>>&7&;-m"&>\6cA;H@1"@9?E;:Kq+#@oHK>9k.C*B2;f@ -:MB2<>J=DL`E@T%)C?"cuL>ZY`BWn\CK5U]@WG7e@p+"R -CMZsp>$uDJFCeR!;e^)IG?eKs:i^2MGuSEp;KlGQF]!*k(QDT0Yc%F%T'cp>nVk~> -)-Q1^ioT=?;g%0koC]%S2>^^J+fM2Zn$Z<@ZY*r\p1XG*(8S$3\%PN0Fd1uXc`N;jH"UKm]M*:8 -r`(GUeU)@_jG\lWB92@Jc_?!QI;"#jTPnjUnrM_*KAq<#p/Y4h[7jh+>$?DV?@om8K>@puH@9I8J?Y*;O?X.;IAS,+]?!qAKCL^Xe>%MANDdQpi=D_\VF'E9o ->&n(^E`m]"CaG@G-*>'4U:@!Z'p -EEmd"ATh7!CgVNoCiWa*ARp!gF`(Q6?>F[eHY?r:>B=aiI:6l8>'k$pHsC`6FC'H,C3j'2D.8!# -EcbT9ASHKpH>d5A?#XslIV*5>>Bk*pJ6m,;>CL6tHs:c6?[uO#G[#T2AURg+EaO<*CO'*3Ch%p! -F*(`<@qp>Bt-qJ6d):>^gWRiF;dS+[nnHnal@fj581D -k3)$q`3&V%g">0>SjYu*DFR1Vo&;rc~> -)-Q1ak2tjI=a0!"p@c"PS=HG<`LEBorLBJYS0Q2@Z`L:q]smF&YQ'F4dZFC/e)?gfQ0tu^s+f7Z -RC&gFk)oV4(q]M!NP51Iji3d[S)ib7oZr]ZbaY,ms-N_T(U5RkJk1&VOX%'duLKM -rg[TPiioPkn?KXoQ,*-IkJ4@kW19pZ_5aW2r35S)\F$&ks,iYb/(uU9^JnYb8A$VR)r"XJ3+sWj/2'W2?qpYH=P,UT(Mj[&Kn/TWYGCTs^\qZCeJ'UpZkt -YG&A#W3W&$X/!(rXKS;(VPgbmZ)j_/TrYDj[&9e-TWkMl[A'\+T(QDT0Yc%F%T'cp>nVk~> -%U&2]k3)+!h<">'p@kFKr^mE2[(r&2Y-`QTE[,.c^q4H!Zb1rSB[&o9R7!^^@@Y0<>e,&lbsHEk -IBgMoE+o5k).?peM`l:)4))(;R893V6HFC>@^3_@>g?CL8q1Kq>b%,&jE@!&rlF?Oug40O?2N4llGEOruP9VT4DZ+PoVABdYJb%XF>:f9td:/4b^;G^(e9i+b^ -=&2Xo9ib.d=ADdp9ik+e>>A=#:0^Rp=AE+#:gQt&>>J^+=("g3<`*@'>[1l:@T-B=:h*U*B2MuB -:hE[.BMrJL;f,KAB2NGI=DLfH?rCiA?YE;O=]T?;ARSJQAdAS?rV,G@VSbY=]mh);e]]>E)pLe;KH&FFB!$e<-;ARF&R-f=*Rb] -CK,I]@!#@f@TI_TBl-dk>[DPPE+Dsn=(lMNF^89UF]E?lBX"`BN97ZA9(Uj?WhSR -Chcpm>%2POF(&-pOF]< -%U&)VjlYgmguS"sp%P@Sr_Wo?\AF\@YI8u\G9^mu_n0o0[_[ejDU2"MSkGimCSSeQ@_@/,cV&E% -K(GB!P*)/!NrO@Xc@6u]WQS5u/f9uqiYBXPaO@aAE\;0$NsA"TGectS-K7>Jp-PJFnRSY/T( -`C<^%@&V#TAUD)+H:NJ)7'VYKOhe\VHG.4`<2I$"X-<*uk!3<*`X+?WC98<+/p2@T?`?B3eVS=(5Z?CKb%Y&%ea=`n%\E`d'=+c -Cfkdd@WP[kAQj7]C2[3t?X\.^EG8U%?"n@^G%+j(>B"@]G[>*,=a4F`H'aOgG$0$#?$fgp -Dd%EoATq=#B3]ghDK/g)@:XUdFD+m*?#4RbG[b-#H!59(>C0[kFBEct@!Z$sCg)-lBQ[I&A6sUe -E,Jj*?Y=ObG%Fp*>]4RaH!k3->'4I_HX(E-=a=FcGZo3'>C0XlF&PZoiSpbKBk_C#^@V'j^>n5& -EIE:cJpk?)p=e*UinJsQk2CZgnFYd-J,~> -%U&2]k3)+!h<">'p@l%Jrf[Sbcdodsc-EWoXWsXXf@-CgcIT(JV;d-J]nseYT>T7)RFe:1ie+;c -XjGVHTq_Og)5UWC^6?FXLYS_bU!;0*RcBJ.PA[2QS]/@"j-?t'J[X7/\^]0)_nLr2 -gOk]RSAj+.RAnWcTn9Q(JC1Q^\^T*,VUX5/O2o_Kc.94PU>gs#i1#jmQ^3l(QBdo(R$a2.QC=;. -SX>b7QCF>/SX5b7Q(=;/SX,b6QCXA3SsH%:Qm&/hSt)+?Q^aV5TUD.?Q_0h8U6qIDQDC+>W0j9S -Q_p:CJ#A[0TU;[HTV\!PS=?FEUnO3TR\6LEVOa3SRA6IDVjju`RB)mNWgTf[R]MsRW0jWVSZA0VURJ9RU8XH[St)mM -Vkf`^S"ZgLWh5c^R\lpLX.5i_RAljKXI>u_RB)jMWgTi[R]MsRVj)JkjQ -%U&5^k3VO(n+?>Ip\pjJrC$oT4$#Yp:QGF3,@Neu3]f\n3]fVr5'I6:F(%76ipq5Xde#697M'5W_"l5Wes6(Irk)6T[S"4%2:s6p<[u4ZY\m4$c:u -55mu>5s%+i6TmIl6:F%$6om\&4ZY\m4ZY\m6U*^u4Zc&&5='UE4[i"77o2fL:Ie/R85MiM:.A,R -92e>X:.S>U9i4AY9MBq87oW;V=@uCk7T`M\>"Map8mY7i>=_st9OC@l=@lps;dW(&<_['r=Be@- -;H.1!@U)ZB:0M*uBNJ,F8mkq!Bi%oA8S;.&BM2]=9l!U0A4^K<;JJj4?VG66=Ck';>Z#?3?Xl`F -N9jV@&CfXPN8nD=*Dbj^rAP$fBZ>c;An=\X;d=35DdZLc:1S$4 -F')Ua95S-9FAH@\9QO?>C2cj^@o7>E?u&DU>?>f&R&M@T%;D@;8GV>$,`;C1C(^;.+03?U!f -%U&,Zk3;0umd]oAp\CXTrD3\l84Q?K>aGAN,ABkD7n?EK7n?BO91i#O9i">Q:.RlI:.J)Q8l//O -9LqZOR/W0bE)02!:/FPU:eXDM9Me;S:.J,W9h7cI9M#.Z(K,pA:.S)R85MoO:eF;S8Ol?J852oQ -9E%a):.RlH:J+,J:/FPU:Ie/U8kDTM:.RoN:]=%291Vl[9MU7r92S\i;-6ar=]&=(;d31&>>ea- -#\j.=^4g5>#o*2?!UE>C/n\P<,5]DBN&SR=Dh2MBN/kU -?#3MUAQWqS@qnt^?sR\NBkUUi>@VPMEar?qBEq[CKGXb@W>CfB3TO\BPgdm -?t"(UE+iEu=_DVPG@Fs('jLfFB!QuA7'U`E,Jg*?=n=[G\CE0=Di%Z -HXLE.^T[hE`RKr@X(ppCg26jBld9g8a56rk3;0un+$#Bp\2D`j6#Oi -lgF64oChq6f&GcQkj%O&nFH8Gj["C~> -%U&5^k3VO(n+?>Ip\qLIrJLl9JUrT5O1"tj,F+%:JV8r:JV&`:KnPA8Ll-hK7]&BKnlk5Jr>YMN099^P)YQcNg>]fQ&V)l -O-YchPE(riOd1lkOcPffPEV#qOHZ&kR?N`$NL#l5Ngc&nR#RMtOID/rRZF,,Pb3u,R?=2)R%981 -QB\#&S=5P5OdDW!TU(e7O.Ml(V3@=?Nh`#,UlV(;OJJ,.ToPk8PGF;1Srfb5Q_KM6RZaM/S"Gb; -QBlTdNhDl)V3.4=Nhi#,UQ;%;Oen5/TT5h8PbX;2S2+CR['h4Tq@IHQ("M/VONgLOJ&8. -WKrsKNhr81WK<^FO/\J5VN7ODPGs\8U5l4?Q`#n>Ss$(:S>2+CR?jb3U7[RIPaeJ/Vj`mLO.`.1 -OK"M6UlM=APc9b:Toc7>RAGq?S-STjD^k3)+!mdKiBpA"O#kiV$k -mI'E4rq6Ehi7Itj!:'RO!;$3`!U)k#~> -%U&5`m-a<2p%J.Trr8ZQp-\dFhF%6.j?iu;7mYWls$ZlV1.+Q"6q9X86qBO.77KX;84?6A8P2BE -7n66@91_QK7S?EC:e+&P6r$"hIk7o`DS ->tRjo6suX4)9N5:d@Sf^-86f1` -AkZ*07:B%bA4]s,6tK(i?q"I#87b@p=[Zpu;.N+*;FbLr=asgJBMqW>7q,RhCe[u>7;#OnBLlN6 -6u5Uu@mt!/95-t(>=<7&<+SL0<(^mt>[9d5:f:moA5u0993PXjBi.]>7UoIgCeRr=7;,RoBLcK5 -7;P\"@RXp.9kd1+>"!1%7V!uK53q@pm-a<2p%J.T -rqsRqkNVF&n+$,Fp\OpJfB2;^mdBT9p@e:ZlU$+~> -%U&2^l0Ia*nalJKqYR'XpJ:icrD)6H!)NPg!)M]Qs%rbjfhc9X:f1%c;G^4h:fL=i<)HRm<)6:g -ZXd1;cm7#?rg97;-d:#@T6K;:gmI*@o?Z=:hEa2 -@8UQ<<+]'9?VtN=>%UWD>?#B;@:;i,CKObR;.j-4CK4eS;/BE=CJneP;K#WDAl3>J=DUoL?r:oG -?YE;Q>ZYfBAn"VV=^Gi?CgC%Z?PoCCLL%] -=(,i?E*QLc;eol>G$&-g:iTcBF&Zja:j#oJDGY:Y?c&DDI?=a -=(>r@Ea2df;J]c1W`SX?;u#Hs(3u^FBVpg;/T]2 -l/h*mlgF64oChqTq7c"RkN_C$nFH5Gq"rjsjQGamm-jH8p%S:F6%A~> -%U&5`m-a<2p%J.Trr9ZfPE_&oOH>iiQBI5rO->igR$!GsNg>lgT95A.NLZ8qSrf>, -NLl>tSW0,(O.MH%RTYWDPE_]"SsGG3OdV\uTp1b6Nh)MsUQLq6NM)N!TT>V1NMDZ'SW0;-OeIi* -R>mr(QCa).Q&q]$R[T54PEqo%U6^n;OIVf"V3@1=NhMc"V3.7PaJ5*UmR=COIi#&Vj3UENMDo(VidOBNM_u,V2_41R\>_;Q^"A. -TUUq>PF8/)UmR=BOIr)'W0E[ENMDl'VidRBNMi&.UlD.;OJe52T8f_6Q7\qnU7$8lk321"mdToC -p\=ac_!'tGmdBQ6p@e7Ws5;Mkkj%U(nFQAIq#'GEJ,~> -!(-Umrji*Ark/>d,_7+i+b:fV+TaC+[/IK5\cBAA]`P7B[JmW8\Gj&D]Y2"dZ*^t=[fEu<])TGE -[Q/j~> -%RIM/['d8NZEpmF -[C3NR\@K2W3.L~> -!(-Umrji*Ark/>u:4Yfa7"IbG6ipc([/IK5\cBAA]`P7B[JmW8\Gj&D]Y2"dZ*^t=[fEu<])TGE -[Q/j~> -"'=dJ]_M@(qLS?kp4;qVp&OjCqZQ#pm+4OR~> -"'=dJ](l.&qLS?kp4;qVp&OjCqZQ#nm++FP~> -"'=dJ]_M@)qY,R7JbFZg`qBE-h>7?:^?jH;J,~> -"^19U^&R>Jj+66Aj-ep2fTs);g-U;~> -"^19U]Dq5KkCMfIkF(K:g6B)9fg1,~> -"^19U^&R>Jj+66Aj-ep2fTs);g-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&QsgeH""p_#_iuo[O>p_U[,OcG@rZe]Gi&eH<\)_9_W$!R/ITeH!km_$.d#`RVlNJ^o>% -J^sPG"iGu'nCg3Z~> -"^19U]Dpmig&T\$`<"H-o\']%a4f1be&Bqmg1!R]!^g&TS"` -"^19U^&QsgeH""p_#_iuo[O>p_U[,OcG@rZe]Gi&eH<\)_9_W$!R/ITeH!km_$.d#`RVlNJ^o>% -J^sPG"iGu'nCg3Z~> -"^19U^&QsgeH_rO='f3?M$rt+$]#5A^As[._U[1>47q&+SK_B);t/<%J^sPG"iGu'nCg3Z~> -"^19U]Dpmig&e8S=oMh1N=5C4$]>JJ_uQ<9a4f6O4nRG2Td*u3 -"^19U^&QsgeH_rO='f3?M$rt+$]#5A^As[._U[1>47q&+SK_B);t/<%J^sPG"iGu'nCg3Z~> -"^19U^&QsgeI8;T`7:P6M$qF'8k-hreI[NFe\;*H/[]G'9fp3Q8mop>eJ`-[\!SA^r0LB]?M>tR5s=D:BH8P2e"J^o>%L"-@EK=UL*6@]~> -"^19U]Dpmig'jt]aP*FCN=4$29M!>%g(9/Og;EuV0"Gn1:-HWZ94H&6lQ92&4-J_G\/L"Z^NJ[b.%6%A~> -"^19U^&QsgeI8;T`7:P6M$qF'8k-hreI[NFe\;*H/[]G'9fp3Q8mop>eJ`-[\!SA^r0LB]?M>tR5s=D:BH8P2e"J^o>%L"-@EK=UL*6@]~> -"^19U^&QsgeI8;TA8RA.M$nhJeLYD0eI[N@D.3L'!/giP.m$Nqd/]R/eJW9PCUAd+eM:W^T;hmL -!$5eSP,iPJ%@\_^q:-:6$#P$.-"\d['7uGKeNd(m!)b]hUiiPceUc8)eHNjC\a\<>J,~> -"^19U]Dpmig'jt]B5j"7N=1@Rg+@(8g(9/HE+As/!0.&W/3Qj"ec;68g)4lXDRbK5g,!;iUTOTW -!$>qVQ*57W%A,%fq:ZX>$#k<5->>-e'8;bQg-Sh"!)kfjW-G=ng4@t3g',NJ\+&':J,~> -"^19U^&QsgeI8;TA8RA.M$nhJeLYD0eI[N@D.3L'!/giP.m$Nqd/]R/eJW9PCUAd+eM:W^T;hmL -!$5eSP,iPJ%@\_^q:-:6$#P$.-"\d['7uGKeNd(m!)b]hUiiPceUc8)eHNjC\a\<>J,~> -"^19U^&QsgeI8;TUU$$`M$nh=8hPMeeI[NDZCh2U!/gij=Z]Cr8LL>0eJc04^E";J"\LFmT/Sh3 -MZC'5!g;*aH5b<]D>D]uK+G8rE$]*KeJ!P!!(o"_2bqW9R3b2%L"-@EK=UL*6@]~> -"^19U]Dpmig'jt]Vm_ikN=1@D9J:nkg(9/L[\Nn`!0.&q> -"^19U^&QsgeI8;TUU$$`M$nh=8hPMeeI[NDZCh2U!/gij=Z]Cr8LL>0eJc04^E";J"\LFmT/Sh3 -MZC'5!g;*aH5b<]D>D]uK+G8rE$]*KeJ!P!!(o"_2bqW9R3b2%L"-@EK=UL*6@]~> -"^19U^&QsgeI8;T`7:%PM$nhJeU*e]eI[NFe\;*B!/giO.Q^Epdq#l^eJ_LPeW0og&(Q,r-u>m` -MZClL!g9R#H5b<]D>D]uK+c_bE$]*KeJ!O,!7cgc2dOt*Gb>OmJ^o>%L"-@EK=UL*6@]~> -"^19U]Dpmig'jt]aP)p\N=1@Rg4#[ig(9/Og;EuO!0.&V.m6a!fOh\ig)=-Yg6)Yr&))T).;u?h -NW@AY"-p$-I2^ffE;A3(L(`4oE[GKRg(T06!8<9o3+(C6H__.!J_G\/L"Z^NJ[b.%6%A~> -"^19U^&QsgeI8;T`7:%PM$nhJeU*e]eI[NFe\;*B!/giO.Q^Epdq#l^eJ_LPeW0og&(Q,r-u>m` -MZClL!g9R#H5b<]D>D]uK+c_bE$]*KeJ!O,!7cgc2dOt*Gb>OmJ^o>%L"-@EK=UL*6@]~> -"^19U^&QsgeI8]:a46n>RlSYm8kI,"eI\01e\j/30Xbt1C0nkA8n?6CeJcFm8j\T^=\;0(W]ad/ -5qpO5NC#mtO$qMoL&'78Ps3aKLJ<7teX8\2@7ic'>C"c@9hJ@,J^o>%L"-@EK=UL*6@]~> -"^19U]Dpmig'kAEbhApMSiY5#9M>.T3Y!6E9 -6Sd'CO@2F)P"+/%M##a@R6]K[MGJh)g7:RB@n]/1?$k;M:/"[6J_G\/L"Z^NJ[b.%6%A~> -"^19U^&QsgeI8]:a46n>RlSYm8kI,"eI\01e\j/30Xbt1C0nkA8n?6CeJcFm8j\T^=\;0(W]ad/ -5qpO5NC#mtO$qMoL&'78Ps3aKLJ<7teX8\2@7ic'>C"c@9hJ@,J^o>%L"-@EK=UL*6@]~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]DplAg4@t/g6pXua+:_hfg1,~> -"^19U^&Qr?eUc8%eX=qk_h5Mhg-U;~> -"^19U]AqOpeUc8%eYLahe-4..^@9iCJ,~> -"^19U\`V_!g4@t/g8*Hrf`fg:]^XT?J,~> -"^19U]AqOpeUc8%eYLahe-4..^@9iCJ,~> -"^19U\^e0?Y( -"^19U\D"cM\q.GD\u*%?f@kuRJH^tP^@9fAJ,~> -"^19U\^eKH\q.GD\u*%?daa-IK*@7R_!p&EJ,~> -#$LBV\^c7IJSp$VJSqH)"`L*aeVBaqX9#AerN$1XkJ6T@6@]~> -#$LBV\D!1"JVJ`1JVL+X"Ld% -#$LBV\^d1/JWPGEJWQgl"ME=9LS"LH!NVLaX9IDB_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP"hO-ReVC+&]`R5W\Gj/Fp?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W"lfR=g4l[-_?/e]]`,bOpZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro"mc3AeVC+&]`R5W\Gj/Fp?06\g-U;~> -#$LBV\^c7gY,hr+S"$@XXJ;8SWe%7&XG3ea]'e2#LT%o"d.)pnrk/L/kJ6T@6@]~> -#$LBV\D!1KY1a30`5L3[g<[^UfR_b-g4n;hir@lhL9&2.eFA9srk\j5lFuc@6%A~> -#$LBV\^d1YY3$&Hcd1S4k1\/-jFQHEk(`"+li5YgLT%o"d.)pnrk/L/kJ6T@6@]~> -#?gKW\^c7gD#RcCVQ?$\?NHOOrEff)XCYb=XK8B"?NcmR?XIgKX9NZO?\PS_RJgItO^DY#UL.ej -rEfYh?XI75X9tq/9hf3#T2nZ\EIk3BXG3ea]'e2#LT%o#l0kp8rk/L/kJ6T@6@]~> -#?gKW\D!1KM>h`$db;A4GQGXarHJRmg44G"g=k'UGQc$dG^,;Fg'3X`GcBEN_Yn]a\9NMWcZk8E -rHJFSG^+T,g'ZDM@UalAa_bKrOFc,:g4n;hir@lhL9&2/lLD6 -#?gKW\^d1YOT'_2hWDiVIf[d'rI5(+k(eHHk2tV$Ig"0*It*g\jp%3&J$S5!c2E+s_LI=&g4,0h -rI4pdIt*(AjpL*kB4m"^e8o88R"=CNk(`"+li5YgLT%o#l0kp8rk/L/kJ6T@6@]~> --X#m"\^c7gG=[RI=e_TDM2>,\?u/;R5aSR+3gZqLWeiEdV42BqOnl'sO\9S]XK83WJVdWR --X#m"\D!1KQWpVqER)cjY-)H5H&>ae;8Cna9#007f<.6=dDV#N\G=hs\6b-4g=jkCUTS^&D1UEk -?'N8iY-(71Xurodg&]C4q:Z2'<8-&"g9bkRg.[(OJ_Gk4']T/Lg4lZFb5L>JP,H16pZfK^fg1,~> --X#m"\^d1YT4#.;GhL_7\$p7VJ<=0+ -**M^l\^c7gN`rNcIVPrHXEBAcKpl,*I\NolCHVQs!'L7^!K17XX8uXbrN$W%TluHXMd3?XX9tq-='&e2N`iHb4FsSbXG3ej]'e2#LT%oPn(#smOgr*ukJ6T@6@]~> -**M^l\D!1KZZFjSTSD/og6AbSWP`\`T?Z)^LJ7[#!)3CG!O6eAg&ZE$rRqlfba,WEZ$"dGD8k4& -g6@uSg._Fu!H]U_g'ZDJDJjdSZuOgR9S(oKg4n;qir@lhL9&2Xn_2^%OhAR*lFuc@6%A~> -**M^l\^d1Y]m8c&WK$%:k+&p&ZHdX/W7^71O&5f;!)W[W!P3[QjoKn@rT4`!fUfdl\pWYnF3s&G -k+&.&k"u! -&6\G`\^c7gN`rNcIVPrG4<+7#!EbH_X91V:7> -@B?OV4>Hi:#<])hQ`R9\Q2.KgVFco48?@hSXK4O8XF[I-X;&86f@>YTd/)GGe]j#R^%UX)nCg3Z~> -&6\G`\D!1KZZFjSTSD/n9HsGh!H>LHg&k*GD4U[[!)3CG"L3+'g;!L<'R-b7d`:'F7i^+6g18($ -HeR1,9KrI0#>Ek*^Y7Da^%p@hdp0Ak>M?H(g=f5Og4@t4g(`QHhV*^beGJ+Vg -&6\G`\^d1Y]m8c&WK$%9:a>r$!Hu9Xjo\M`F/Alu!)W[W"M0!Ck0!P_'RdOSh9tFl9-*$Sk%W)I -K')2N:dP*C#>jRFb3%j:aSFs*hI4:<@-51Jk2oKkk(2ZLjqR.]g!tkVd/)GGe]j#R^%UX)nCg3Z~> -*Ehgm\^c7gN`rNcIVPrHXE]McXK5NcXK6VM>[1;.X8kB^X9=GeXK4P\X:AQoXGU>c8"k6fNi\mE -4T;Dg4KNdMVlW"^X??0W$Dg+kX? -*Ehgm\D!1KZZFjSTSD/og6eqRg=gMSg=hj7F`hO"g&OhGg'"['g=f6sg(&>1g95_S>0NG@[+`]- -9`E`P9\Pkue(RLLg._1n$IMi,g.^5-ESB,?J_G\/L=umls5)IaX6fBTg'FpA_Y -*Ehgm\^d1Y]m8c&WK$%:k+T3'k2pj&k2r:^I!fu6joA6Wjoi8Ck2oM:jplgMk.,p&?J)$b^?4!S -;#]S`;!+IAhr[btk"ta5$JekIk"t3SGin-bJ`_OGL?8a,s4PqXW9`pNeHi=;^%UX)nCg3Z~> -.9Z*$\^c7gF%(b8>,7fDKS3-OXGfPbRA2`fSV8\ZWe.U,ICP=EU^G -@=5/XQnF&F24&tKKS2(]XCX!ZX9tk!KS3($Pur]m;h;$$XG3e]]'e2#LU-TsrPAiRNhlC3_!p&E -J,~> -.9Z*$\D!1KP$"W[F3r&jVl+(#g9Ob<_TkZ?a/M,1f;C[-d(tK@Vl*)_g*!_+L8TcMc:+;%E0T)/ -H_&mE^cJBk7),W\Vl)`4g4)-Yg'Z;:Vl+"X]l0gHBn=uhg4n;dir@lhL:$X!rP]&XNMcI8^@9fA -J,~> -.9Z*$\^d1YRU*/%H/-q5YcqlDk.=f\c.Ygcd]u$Sj01\NgWPXbYcpgujrh?FNj+OlfgqsDG+@^U -JYhMkb<<)68'.tuYcpFUk(Z"ojpL!WYcqd&aE=_kDLpr$k(`"'li5YgLU-TsrPAiRNhlC3_!p&E -J,~> -#?gKW\^c7gE;jALVQ?*^A.>!/F(Ag=S7H/mAn6@hraZ&#M#CiaGl+QBFo>hOMjsZU#F2BlNgm,O -M#CiaPPo"pC94LoE;6L@OCVmlXK71fA>XpZJZOU-#.j6SeVDVNqL]!6o&mgXg-U;~> -#?gKW\D!1KNrFM0e(VP7IgsS;Q2Q15Z,HTj#JJjF[)LbQ -XSmVK])@*]L>(@bNqh<7[srnIg=iTWJ'ro%J_Gk4#3,[>g4n%OqLJj3o'3sYfg1,~> -#?gKW\^d1YQMuU?hWDoXL(2GjRYHR-d"[:lM2&"fre:I&[f(p\U&3sPSc+9D]$L>0#KPuh^ILDJ`_^L#4) -#$LBV\^c7gJZOF(JZPiP"hO-ReVCX/b6@\(_!p&EJ,~> -#$LBV\D!1KJ_G\/J_I*W"lfR=g4m05c3=%/^@9fAJ,~> -#$LBV\^d1YJ`_OGJ``ro"mc3AeVCX/b6@\(_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP"hO-ReVDWLrs%*JkJ6T@6@]~> -#$LBV\D!1KJ_G\/J_I*W"lfR=g4n&Ors%'IlFuc@6%A~> -#$LBV\^d1YJ`_OGJ``ro"mc3AeVDWLrs%*JkJ6T@6@]~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpl"nL%"3?nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&IqqDA"KC8$=nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -$ -$T9;I-mJ_IKb#3,[>g4n&H -qq;:uJaVg;nC^*X~> -$joMKqcK51g:T]31J`a?%#4) -$!H]Y\^c7gXAYA^X8uU:ri?MjXK59cX?4VlZtOD47PRM0a$5ri?ERCoj[SENFP)TRj1qXLtV=]'e2#LXYejeHa-I -n)qLUg-U;~> -$!H]Y\D!1Kg1S.ug&frMIK%q/9\S34^tMK9g.^5F=T$kRYFX%o("ZGtMTFMqMU/Dsg=iE]NnVs> -^5Ac2QE'SVc(QMN?J^MTUM(J_Icj#3,[>g4n&Hqq;:u -JaVg;nC^*X~> -$!H]Y\^d1Yk&&6=joXXlK`:*B;!-nVb2uO_k"t3n?2Wgc\Y[[8(#rG4P1/RFP2!FDk2rk1QKI%e -ac`@sjo_$7P0*R_&"gVcP2PKbY*.)mVRWCag&C+?VNL$%P*b=.P1G3HJ`aW-#4) -$!H]Y\^c7gXAYA_X:h`>bY7f9=g -3.#O`XCcU%=EXJA*,JYVHXEk*Ap[LSH5gaK=f8@&Hu,mb:0XfF321u*JZQMc#.j6SeVDWDqpbql -KCA!=nCg3Z~> -$!H]Y\D!1Kg1S.ug(Mb5<79LS9$GLl_:hH(FKsQE=T$kRCd-5"*8"V>SBT^599sjYU9B*;R!dCc -7\#Bug4>KYE0U4Q*/SNLS9`haJXgN(Rj*f]ER`^rSVc(R@W^=m8'Z\>J_Icj#3,[>g4n&Hqq;:u -JaVg;nC^*X~> -$!H]Y\^d1Yk&&6=jq?EQ=l&6&:>"39biVUOHFr=m?2WgcE^A(7*91UUUtFha:S*)sX13q\TRu*, -8u.Z -,?aHs\^c7gXAY@cR?=R4ARIs.X=d"5=/;o?7ldZPU.25cI`nenBn$#^s&8lt%Xqtt7''gPXGpGc -Ear[-q5aXV-D:@>'d[F&?UgJZXK7=cXK6ecXK71cXE/N8XF[IbX9Q9(f@>Z*nb^iAa+NjD_!p&E -J,~> -,?aHs\D!1Kg1S.R_RJ5lJ9k;Ng,`D@DU7#c>"IB$bui]RTZc$iL7nM!!GQ -,?aHs\^d1Yk&&6&c,/U=Lk/gnjum$WFPGq.?;0MDfj3b&W6=<(NN)m=!H)iSjpn>GJQq8f[H>/J -k*^mYV>96T]/%t:jqTY-Lk&gWB]eHgI-0RgOlkf5K'&MmJ`_OG]B0=`s4PqXe+*=c#KMJckJ6T@ -6@]~> --X#m"\^c7gXAY@cIVOLGK7dNhX?lC`6211%-Lmgc2XFk)cXF+j`X9(n\6\2=iXLbJ;]'e2#LXYejeHa-I -n)qLUg-U;~> --X#m"\D!1Kg1S.RTSB@oV58F@g.^5SB#*+og:2%Sbui]R9\S4FaNrQFL7m8Dg=g8Srn7p^I\i*+ -g3]mSZZFjFW25*?qUttUFT'o'6_:-MXi+>lg80>Rg7=*"g&bHqfP -mcqOUfg1,~> --X#m"\^d1Yk&&6&WK"-:YHNGek"t4&Cs(m:k/)6&fj3b&;!-one'I.]NN)'kk2pR&roOcsKs-hI -k(0r&]m8bmZ*0"bqW7gjHi<(:8#EJl\'A:(Pgek.9[Zli5YgLXYejeHa-I -n)qLUg-U;~> --X#m"\^c7gCFi@i7;>4SH$))@M'623=tuaD@(g@XF --X#m"\D!1KLcB'l=,'aNRZp`s'XVh'G*KosF*E&dg7VG=QeL0A3i7J^J_I]h#3,[>g4n&Hqq;:u -JaVg;nC^*X~> --X#m"\^d1YO#q3,>`DocU7=ki\1E&VEn@:m4g0G!J`aQ+#4) -#?gKW\^c7gOSt%AT8SSmP_tHkre^cIXI0!E!K3WLM?K!AXI>Qleq5aXZMN[q>':"H6XI;nHMPmPWR#6cdXK80kUk,UuXLbJ;]'e2#LXYejeHa-In)qLU -g-U;~> -#?gKW\D!1K[f*B7ag&%`]W\Z^riZCCg;3cl!O0cGY6;8eg;CJHg'>3mdG!'QYK-Xr%_f-iYKO,W -g:"38_QU/Uq:YnYYIXVc'>:TTg;II1YLD4Z_6:&Ug=jk^d"0o%g:GuBir@lhL=5Yig'>fPmcqOU -fg1,~> -#?gKW\^d1Y_#:eKe[i<5`jre2rj`*Xk03e7!7q+Z"Ma*]cGRri#K=7/k2*YZdf/A=aLTm4f"&QX -^q&CI\[fcVjoW?/_u8^2aLSqFc=k)*hra(F\[fcCk1XJ&J`_OG]&j4_s4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7gJZJsT@OG[\X94DX,aa.aJZQGa#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_C4[I5-0Fg&nWm/\lqkJ_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`['sK/A8Vjo`840[#%0J`aQ+#4) -#$LBV\^c7gJZJsTR$*d1X952[P, -#$LBV\D!1KJ_C4[_7@;Tg&oX2\^H&_J_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`['sbeqNsjoa;S_qot,J`aQ+#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -$Z*nb^iAa+NjD -_!p&EJ,~> -$ -$ --X#m"\^c7gXK5T)Uo]P[XJe:4@#.pH;1McHXHlbc4KPVkM6*e%?dPkhAo;(!?$EBO<(E^bXD17^ -8!9rY7p5hm#a%VhC94='7s'<`JZPED#.j6SeVDWDqpbqlKCA!=nCg3Z~> --X#m"\D!1Kg=gU_ce>[Hg=8omH*)%oAts=og:h7S9\S3FY1hTpGgP.ZJW"o.N@0>&jPq#e4&iL>(*[>*FNkJ_H[K#3,[>g4n&Hqq;:uJaVg;nC^*X~> --X#m"\^d1Yk2pr.gZH.pk2B1=J@9X:Cohg;k/_H&;!-ni\E;qEJ'd -)-QCi\^c7gXHHUrJuj09XK8A"VlEj\VLrCXX9q(k4KPGaPH:j#:=-'dSelYjG#G,>PbD*FC4;jY -5H0!fTnZsVOBeK1(7S9sTlbF.XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -)-QCi\D!1Kg:;$NV:q5sg=k'-eCSZJe#.Zog'UO-9\S!:]%YkmA'ipRa;pZlQ>"Tb]?G*.L7lb/ -:tD/Abc5sB[rooj*5lU9b`e9Bg4@tLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -)-QCi\^d1Yk/;:rY3)@Ck2tU]hrAmqhQV_5jpFrI;!-Y[`TH -%U&5^\^c7gXAUuA1TYe?qlBp&OK=.Gri?8cX>W:2M9DtAV*ghHQ;W_d5Z*nb^iAa+NjD_!p&EJ,~> -%U&5^\D!1Kg1NlO6/%Wdqq;0l[b@[/rn7NLg-eb -%U&5^\^d1Yk&!^j7-:,.qrS$)^uhqVroOA\k"&KV\'*nTh-&3:a_eaCNY'i --X#m"\^c7gN`rE]I;=XHXK7\YXK5NcXHHedXI;nc4K4oPTrb>UJ^CJBV*ghHQ;X)MTrFKG:RJ55 -7''jOWFfA9C4<7cLP'0>XHQY8XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> --X#m"\D!1KZuXaKSqsLog=j6]g=gMSg:;:Tg;@FS9\.:$bhCdWUX7^=d8\1n^1b?!bgs\EA\m)o - --X#m"\^d1Y^3S\rViS9:k2sb6k2pj&k/2K&k0@Z&:uTlDfB25/XO-)Rh-&3:a_f4Af\t,rCNURDiJ;dANi;+&[BGAJk/;:kk(2Zdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> --X#m"\^c7g73PZI/LIEO4?QN5XA^8uGcZih4AM;t(hp(8=KJT%/C:IB>T/,4INOr<6Te#-Rnl.Q -7')VD4BE_uXD0j[@]Y/D4B8&*XF[IEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> --X#m"\D!1K==S*C3AK'b9MB-@g1i'%QeJ]A9Okr;*erC[Dq`oY2pg8&FWmM*TI7R` --X#m"\^d1Y>V0rX4>Yp':f)&Yk&2e=T]Wje:h\+X+H>O&Flqh'3md"5HQoO#8bOcY?:* ->NWn4:in; -#$LBV\^c7gTWA0BCOrR -#$LBV\D!1KT\9F=LOn01g5O_iir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YT]Q9RO+HGEk)AF,li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gUT=QT4?RD1XF[I2X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KUY5gR9MC4mg4@t9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YUZMZg:f*4(k(2ZQjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#?gKW\^c7gWVr4iUm[XPX-oEOrL!neR@^LJRB3"ZR/i`QXSnOjTrb#WU7^8C(9;R?4GU#;BKSDC -XJT5b5bP3R:cqFHqQ'b!ClA:o"H,B)ENAr;!M`QjX9*o+WVNUrKlI!l"#2o#NV]^_K028?XK-J+ -4GN^6"K#Ed5bRqS!I]7mX:La^4CtIm69I@bU9(4r4H'3?#`ga-XJfVk4Igu(NN<>qmap!Ee+*=c -#KMJckJ6T@6@]~> -#?gKW\D!1Kf)(@F"`'!niC6rn7LZ9MCQ#qUttrB`-QcU-.$&g&\15rRq?;9MDehg'OZN9UFJd -PY=cNqUu)$F\GZUq:Yk@RJtnN_bSJ_H+;#3,[>g4n&H -qq;:uJaVg;nC^*X~> -#?gKW\^d1YiVgt*gs+(*jil$(rQGN&bgY_!bi[FSbQ-#djoE[*bQZV\gmi9"-<:dNarhKi#0roOL%6d"QLKMYLmJ`_sS#4) -,?aHs\^c7gS0g[#3bg]5XJ[a?K,dZ_-%[r2?2btDh.Jg+P*_m_J8#'-]<\W@2(8XC"X?qQ'a>0S05)"?`ce8Y>m]!i/mHr2]r^5cFO\!e`mHrN#u]pT+[?XK4Uc -WH5/B4Sl,^G]0[[6i*kcIlqHEX:7:nXC-gbE3--5Suc.Ur2^/d=HKV;A?;jpJZOj4#.j6SeVDWD -qpbqlKCA!=nCg3Z~> -,?aHs\D!1K`@tD*8qor*g=/5cVB]Y`0;U0\g.4Wc7:d]T2#>o4-=\?.>0h(tD*?_/(=?+8g.^5- -ESB,?g6[iRcrSkIX4jn$qUu"64JVo0"AIP'>furt!mkgAr7V3G;:YNs!iT%ArRq6FpY#q5g=foqJg'pa0g3TjSNS<)lakCjBr7VEMDn"H!IbNLLJ_H+;#3,[>g4n&H -qq;:uJaVg;nC^*X~> -,?aHs\^d1Ycn\mA:5r"=k28L/Y9dpu19N2nk"J>.8STPd2u;YC-tjuW-Uk"t3S -Gin-bk+J%&gfrol[H>/JqW7jJ5cjtI"An7C@Fb8;!o%fUr8n&W -,?aHs\^c7gXAY@TK62TWXK,fcX?`>E(nHqQ'agKjO_Z!],t. -poFakO[Z:OXI,,?qQ'gEDlfd&qQ'adHtiS]"?`ce@#+`_'9-=tX?;r6Uo^Y8HZ*nb^iAa+NjD_!p&EJ,~> -,?aHs\D!1Kg1S.>VN[^-g=UeSg.^5=Gf3j9Q^*]e@bON0@f"db@b+B$DSfo;`E`Dr!B$;)g(r>W -g<3^SZuOgR9\Phng<`mSaO/_:KDO:'^Or<\g&t+'g0Detg&fjC9`did)aq[@=d-l -g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -,?aHs\^d1Yk&&5fYFDPNk2_0&k"t3cJ'VPWT:MD4B]`.RB_pitB]<%GFNnO^cscq9!B6b4jqd%$ -k13r&^3Jf&;!+F:k1j2'e(s/fMYcH:abm2!joeNCk$cg;joXMe;#TMYH+d5:qW7k+Z@;c7!^soO -puVk/_Hl6bk01\MqW7pSQ0-n*qW7k(VMtN:"An7CJ[PL>'>/bRk"s@?gZIX^UNOE8gskK4B7]3) -jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -*Ehgm\^c7gXAVY:Suf"UXJ84cX>!X,XK5!L;j8Y<(d -*Ehgm\D!1Kg1O_EaP,?Agftc=Ci".kg&OhGg'#3.do"Zkg&\C$rRq?m -DJd&^g'F-bD;!XsMf*k;g'!h'gfPmcqOUfg1,~> -*Ehgm\^d1Yk&"T_e)odhk1X)&k!3rMk2p*\F.&HqjoA6Pjp9sHk2tB=EcT\/joKhAi8tO)F3Wj] -Gin-bk+J%&gfsd?"KmRCk+qus"MX$\MQHg>#uKdH@FaL_EcQI)joA6WjoikKhGrP1joMu@rT43* -FE>Itjp7]'F62QHPB;BPjohBCk1s29joMK@roO>[k2q6&roOZqK]_DJF*)]igN1\`_>`Qu`cL0k -k)JL-li5YgLXYejeHa-In)qLUg-U;~> -*Ehgm\^c7gXAXRIQ_1@K9hV%YX>lD=R]&fM='K_EX8kBWX9bdiXK8@\PESPmX;@L2Suf#R=fe\e -XE\]cUdV;cL1[BcXIfET"J`'"B7^&`#s>;j8Y<)KPEV71X8kB^X9=/PM)1:iX9"2bqlBg6I.s]C -5-"R_!'L+Z"F+jdV*k'[!Inh_X9:YeXC-h_X:e$sXK47RX?Z* -nb^iAa+NjD_!p&EJ,~> -*Ehgm\D!1Kg1R0p^rbg&Oh@g'H8+g=k)a]"2/%g)%kLaP,@TESB,? -g6[iRcrSlSWe&^Sg;s9)"OGfUK;8G"#u'(,>ftd4]"5QRg&OhGg'" -:>#O!!)37C"IY8'd8g"r!MP5Hg&t+'g3Tk"g(IT5g=em>g.^5>:9I`gg=jA_c@O].g'6R:hV*_4 -o)%,GbCT*H^@9fAJ,~> -*Ehgm\^d1Yk&%2jqlNie)of,Gin-b -k+J%&gfrq'[#!Z&k0s=J"P`)$MQHg>#uKdH@FaMZ`5K[pjoA6Wjoho(\4"40joMu@qrRp@VYB3R -;WRf=!)WOS"JM+Ch-'R9!NM+XjoeNCk(0r>jq;"Qk2o.fk"t3e;Rg&.k2sj3fn&:Ejp(/Og!tl, -nb^iAa+NjD_!p&EJ,~> -&6\G`\^c7gXAY@cIVPsb=C(p-#s>;j;3skHX9EYDX8kBWX9bdiXK7g7R]JXNX8u7ViiEoo<1'b) -XH$GbX?(WiWG]0[[6`dA^9q2-`!Inh_X9:YeXC-h_X8kB^X:JQpX?qmap!Ee+*=c#KMJckJ6T@6@]~> -&6\G`\D!1Kg1S.RTSD1RE-D67#u'(,B#%Zog'g&Oh@g'H8+g=jCq_qIf`g&Yrkin>0uCV\Y_ -g9bkRg.^4eNnVi\g80>R`M*+]!J@0Hg&t+'g0Derg&OhGg'#<9`E`TF/@UER>oqJ2g.^5IG^)Aq -g:hLSg5LU:NS4Trs5)Iaddm:h#Kq\dlFuc@6%A~> -&6\G`\^d1Yk&&6&WK$'%G('AP#uKdHCs$2:jp.=RjoA6Pjp9sHk2soAc/qk%joKD1ioV$8E6IC. -k.Z*&k"t35QKHt,k-'R&c`6g'!K*uXjoeNCk$cg9joA6WjoitYIP78fjoMu@roOKPjQ;Q$k2r^l -roONOk2oS&igAlj;#]SdH*6;lTp=cr=m"ktB[Hb@!NM+XjoeNCk(0r>joA6WjpugNk"t3qIXXP1 -k/hc&k*1GZNTLH2s4PqXe+*=c#KMJckJ6T@6@]~> -,?aHs\^c7gQnpcc2gVR,IYFl)H8%HD1P7GcXET5sVE?OpQ27QgLcdCZXI`]m4HTQD!A]&^X;7]g -4?Pj0WG+IWQ`R)j4@#UAF#Z9BDu-OB>r=QYXK7@C4E@M"X9>1Y0Kbg'X9+A9@/?r7F>u*YXK8*Y -4C>"fXDgE'X9jSC4F+$/G!%mBri@##F0)I@>s(BGXK7m@Q)q'(2`4pCXID=7AZ5U0!*B0$"/fBd -JGuVUS23pAN\ij\<.V-1X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -,?aHs\D!1K_*CRc7[r,cTW-Z!RlsG=5c-bcg6\SgdS)et^&$FhX@k`Wg;nGI9XarS!C379g(r1% -9MA::eqHdk^Y7.Z9Ms'gP"/2:N;D68G!e`Wg=if*9Te!)g'#Sm4\Wfng&eQDH2?5)P=IrWg=jbG -9R5.Ag5]#/g'O]O9UXVfQ:suQrn88aP1nX=G"bcWg=jM(^"V1t7RMCRg;Q`ZJ^sbR!,qkj"4MBd -UAijP`^++gZpRM\COt3!g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -,?aHs\^d1Yb=#'$8u(P2WNt[KUd7gR7'At%k+Jgo,joW1]JGSC -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gjK&?(r&at2JZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KjOsTur(I*eJ_G\/J_JB,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YjQ6H4r(mBrJ`_OGJ`b5>#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#?gKW\^c7gUA]*8Q?@4gFoJHDIWD4_X9G,7Knc[]rc/!cqQ'[=rc/1"XHIUbL>ApHWa._LDQKR5 -4?S%nRSQ%0M6)n34@YJ0X9,@jJc;_RE]cHgW;L=:Rnl.1M>=4R>&+&<)1an4<1p=oN](CKXCF@TAZVt@0K`46XG])iXGa.a]'e2#LXYej -eHa-In)qLUg-U;~> -#?gKW\D!1Kc2Eb-^6FbBQ2]J=TTRP!g',KYW2eRKrfI2NqUtq5rfIAfg:ieb[u#\Ng#G!eVQEq:Yk"Gl?=u+&#A7qUu729MB]a -fQU"_MYc$0`+2P;XngZOEeaSI)5Kr"C

bZUB8rg3u^hJ_Jh(4\TJAg9=,!g5FYhir@lhL=5Yi -g'>fPmcqOUfg1,~> -#?gKW\^d1Yf_q3@aIJZdSc7aQWL;H=jos/#Z*`Ysrg -:f+(PcY63S\)tV::gLs7joXOJXo@GcQr$V*i;2R:_aF@a!fA,Zq;q^5J,SL3+AbnJqW8*E:f)Z' -j*aa#P5=;DcY?9T\,#.eG`Mdc)6H_3E7X16]h!k>k(QW.M!!iN5Yu:Zk.+0:k)8@+li5YgLXYej -eHa-In)qLUg-U;~> -,?aHs\^c7gN]pZ7PbE&?q,_HX9:YeX@]&]X9,%q1&\0UWBWYHqQ'a?r[D:Ml[,o -map!Ee+*=c#KMJckJ6T@6@]~> -,?aHs\D!1KZVGUBD2)b6Q'$XOg7h9Ig=k+mQ$s_,TKJL)55Nt>2Ng"W>0:TFE&R^L!S#c]g(r+> -g=f6SZuOgR9\Phng<`mSIBD50F8FSlH"4&g=f6sg'!h'g9\S3HXP2??O+#a99\S2og=ghSrn7FaG"7,;MqSBp -s5)Iaddm:h#Kq\dlFuc@6%A~> -,?aHs\^d1Y]i'/ZF,b*NSXG;rk,V=lk2tZBSV8-IWBd#F62K^M31;ml?e'(cFufQa!T2qsjqccY -k2oM&^3Jf&;!+F:k1j2'KXU$VH2?Y)J6o>VjoeNCk$cg;joX.U62fpJi`&q:qW7jKEdmuL!)WFP -$+B!Y;WQoLk2oM:johBCk1s2:joUZ^N;hrQ;!-nk[H?RfQ\=M`;!-n:k2q0&roO:"I7o.RMrk60 -s4PqXe+*=c#KMJckJ6T@6@]~> -,?aHs\^c7gRg[!'L4]"%](MW;3LqMI-7_![_]8poFaTCJ_(5 -XF+ecqQ'gEDlfd&q5aUHC&Y1K4KPVlLTHJ>Kjq-b;JU&HXK5c/CSCa/!'Gh6Ml[,omap!Ee+*=c -#KMJckJ6T@6@]~> -,?aHs\D!1K_O@KP[\f@Pgfulr!)3@F"'`rGebRo"YBTs!!\oJ-pt?"QLM#5n -g7F( -,?aHs\^d1Yc(_Os^osAsk1X)&k/M@:k2p+&k2qN_fj3FBM>H?@M;hOkP0I_'k)'*"!=k:Mjpf+L -k.Z*&k"t35QKHt,rT4-FUA"An7C@Fb29!)WXV"(9\[iVDU:\:4D=!],nApuVjfO)*k> -k,+2^qW7pSQ0-n*q;q^XN;hrS;!-nk[H>/JZ@qB&DNBisk2q/5O4aHo!)S7/Mrk60s4PqXe+*=c -#KMJckJ6T@6@]~> -)HlLj\^c7gXK7.cXK6V[T3[P[XAXgiENDa(rN$*q(cG+`X9bdiXK8=,4?Si,X9!j@i2d]_=JDmW -=fe\eXE\]cUdV;cWc*3bXDIku"GX"ZB7^&`#s>;j8Y<(K4?Pt0X8kB^X9=PhWBdEXX9"2brN$*M -I:.p-X9ao99<5.qMLA=tX9Z*nb^iAa+NjD_!p&EJ,~> -)HlLj\D!1Kg=iQSg=hjHb&t/Hg1[ODOP3s^rRq@u+%0T5g'H8+g=k&%9ME%sg&[qdi7\saE6[+D -ESB,?g6[iRcrSlSfSuBSg55f&"KL20K;8G"#u'(,>ftbs9MAFbg&OhGg'"g+eksung&\C$rRq@G -Sp@L7g'G-Y?eF)dYF]>%g'!h'g -)HlLj\^d1Yk2s"&k2r:peU50pk&.SgR-%i-rT448+@p/?jp9sHk2tQN:f,+0joMO/i8tg#G1brk -Gin-bk+J%&gfrq'jHZP'k)fR="LI7QMQHg>#uKdH@FaL?:f(O-=johBCk1s29joMK@roOqlk2q6&k&/8GK]_E.Vl+1ik/sU"DuSl!:k@be -jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -)HlLj\^c7gXK7.cXK6V"8RJR#N(ur9=//?ZrN$-r7\Y$Rq5ak$5HLr^KWM7;goLO<=T5B3N`iHb -4KNdHXJA7cXD`CYX8usbri?5bXK5!cq5aQYri?6T3b'I]q5aUS?Mgf)COGlX!C!O^X8kBZX9 -)HlLj\D!1Kg=iQSg=hiU>^4uVZ"%$DDU2S1rRqD!=O!,&q:Z,*:tjXMW7os!gtDe;E;nQ$ZuOgR -9\Phng<`mSg5VNpg&Zi$rn7KKg=ffSq:YgBrn7LQ8U`=\q:YkQGPg(pLn=@p!D_;Gg&OhCg'!h' -gfPmcqOUfg1,~> -)HlLj\^d1Yk2s"&k2r:$@=RG%]4k\^FP:0RrT479?.kdHq;qtB[k2p+&q;qZRroO?f9nb -,?aHs\^c7gXJ'fL=@Sm-3.XK4jWQV=+MX9tto24(;DUP41IJblGXU3T\-XK6!! -QY(iNXDU3#X9i4"QU@dO?^I*Jri@h8Eic?lBpXuYXK7m=Q)q'[E*T!9X@S\E?AttDKj$a>X@&>@ -6`ctmQ^:1CVjB9-X+@@3X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -,?aHs\D!1Kg<>h!a4c5sg9Q%PCREAb>-GV[^qb*H]hZAY8,CpGd_&)eg;5)6^fgZj!Bcn3g(r.< -ZbU5-\T#@">M>^(^pn"1OFb3FMYc$6aE*Heg=fZE^gPC`g'ZHI6bq:,cD[EoU\`[Sc'i@dg=h(k -^k/E:g5Jc*g'Mu=^fK+ -,?aHs\^d1Yk1H8HdcQODk.H9#EM1t1?b+7'bKG7pa&:+(9D[cWh8`.3k053Yb?k21!C3L@jqciX -]ut6S_fs;I@-4DJbJS,XR#&qiP5=;Jds7>4k2osmb@T<&jpL.l8'BoSg9IY;XSV&hfV3<3k2qH? -bDECak*/aBjp?IZb?EucJ'6#?roPq0R-*P1NQ]4Sk2suIa6)O8Q$h'Ck$cHVI_4aRZ$9=-k#omN ->3=FlbKF5Si6+X6jalQRjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -+'J$o\^c7gXF*i@Brk92XK729:f)RI:h?_l:f*.QC]7-1?M^`0N_iPQXJ1#M:nIZf!EP*;X8o3u -:_$a3XF*i@Uo^Y::fXTuK`4dJJblGSCf!rRXK7mf:kebI!2KNi!1s1k!g6AtqQ'dJ:f(g(X9)9r -F8i6AJRADX$'e=`Mla"::f*MXX8uU[ri?0@:fRFq%\QXgXK6YC:i*57W)-<9rN$N7:o17S:f*:U -XFj>GSZJ1W:]RJGXGs:c]'e2#LXYejeHa-In)qLUg-U;~> -+'J$o\D!1Kg7;hfL"^9Sg=iX6AnIZ\Aq8UHAnJC'M#LudGP^#"Zt@AnJR, -g88Ioa4e<-AcUG6g5Xejir@lhL=5Yig'>fPmcqOUfg1,~> -+'J$o\^d1Yk,)s2N95(qk2s(`Ci$#"Ckq/lCi$fIO8`qqIJW(4^2.V,k1QM^Ct&CG!HYg2joFB> -C^tgSk,)s2gZIXaCiSV"Yl8G=XSV&cODJa-k2t!+CpNp"!87?f!7Ur0!lSo=qW7mZCi"t-joTF: -RJu=LXag?4$--ju]&r.aCi%8njoKk6roO9KCiKC9%b>IDk2r@RCm!lBi,!5'rT4W;Cu"0gCi$uN -k-&T;dcS^OC]NIGk)JL-li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gjK&?Qr/^oQJZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KjOsUTr3cUMJ_G\/J_JB,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YjQ6Hkr4i#4) -#$LBV\^c7gjK&?5r)`rYJZOF(JZR+t#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KjOsU1r,;YAJ_G\/J_JB,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YjQ6HGr,r(QJ`_OGJ`b5>#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -)-QCi\^c7gXK5MtMheBN9Mqmd9NnN&9VHV.9EItjB`:[2>('(pQ:tqm:]=#kFKC!dHu=M:JZOF( -f;o1fmap!Ee+*=c#KMJckJ6T@6@]~> -)-QCi\D!1Kg=gLSYcHK8@;"<>@<1(E@EXo7@00olK`5BcEh6^6^0uZJAH$!@PM2d?SVr'QJ_G\/ -f@gGgs5)Iaddm:h#Kq\dlFuc@6%A~> -)-QCi\^d1Yk2pi!\[CR_Ao6\aApEHbB%NRPAccZ.MuI;oH)G8TaC^=lC&V]JS*$eaVNZSnJ`_OG -fB*;'s4PqXe+*=c#KMJckJ6T@6@]~> -1g08/\^c7gUg9%N1hplSS!R3K="]ej;lWEN4-qk,QTpt/3M[g$UHt0H2jcUg8"3>ECb,Ld!J?nn -XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~> -1g08/\D!1Kcule96ACAf`P6?6DEGS.C"HUu9>/b'lLc57d!N*kf -g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~> -1g08/\^d1YgjHoa7?*J+d)gF\F?[dJDrY9A:WZ2jb#Ha79\V+Bg/lAX8^'lG?dEN7O?*=&!O0t& -k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~> -%9`,]\^c7gN`rNcRZT`3XHELU6)T46U.1kuJ#kb.Qq3mOJ#PZ2KUGT:XFL5N!=Naq -XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~> -%9`,]\D!1KZZFjS_miD>g*;6FH&cXFFP<\B;q%Gobui5RU"W1O_->+:U"3&iVnurtg7eN"!=k!< -g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~> -%9`,]\^d1Y]m8c&cGNKXjs,bbJ -#[-TX\^c7gN`uC_!'L7^#%rHoLKJS$ri?u'VlZto(cG*iX?*&cWB[JcX)pHdHN'uHUoApH -JZOF(goL^kmap!Ee+*=c#KMJckJ6T@6@]~> -#[-TX\D!1KZZH*!!)3CG#(r[rX)F)Arn85ge(WO#+%0Slg.^!o>KbaSekk)Sfoo*'Rf;"Acdm[$ -J_G\/gtDtls5)Iaddm:h#Kq\dlFuc@6%A~> -#[-TX\^d1Y]m9S=!)W[W#)]L4[!%g_roP)"hra(S+@p/-k"su:@+OK&i`5.'jdT(CU]0BVgZ!eH -J`_OGgu\h,s4PqXe+*=c#KMJckJ6T@6@]~> -#[-TX\^c7gN`uC_!'L7^#%rHoLlON#ri?u'VlZto7])&RX?Z*nb^iAa+NjD_!p&EJ,~> -#[-TX\D!1KZZH*!!)3CG#(r[rXgC]Brn85ge(WO#=OOC%g.^4U+NrKmekk)SbDt<19S(oKg4@u0 -g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#[-TX\^d1Y]m9S=!)W[W#)]L4[_>L_roP)"hra(S?/E,Gk"t3#,1bo=i`5.'es5C[:k@b[k(2[H -jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -1g08/\^c7gXDhrp@tBGCEGoNf5@U]\>HFoL.rL`UHnKDY0TRTDOVjamR;XQtXI1#?EEW:B!=Wgr -XF[I(XPBl]]'e2#LXYejeHa-In)qLUg-U;~> -1g08/\D!1Kg5h#NI\X#jOGnkA:jgtrFP>H62iGN+SN;jo4gd&T\0&oJ_MpF;g;5(dOE(9R!=t*> -g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~> -1g08/\^d1Yk*D'qKrh_4R$(EF -k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~> -+'J$o\^c7gXK6hnKrhA4G'U0eG(-NePH:j4G'9=ULAl?.IZel -+'J$o\D!1Kg=i0bW7ot-QC?OWQCusW]%Yl-QBoGBWrA:rTX^<"g9T8_`0Q^Xg=*I)QI,Wb!LgiU -g4@t/g>(Bdir@lhL=5Yig'>fPmcqOUfg1,~> -+'J$o\^d1Yk2rS5Z0(2XStbB)SuCf)`9-3XSt=6iZi6O.WPb=Hk.K[8c^p`'k2*kST%j8,!Mdki -k(2ZGk1o)'li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -$X)o[\^c7gXK5#VU]%7oA,!&*B;g]h!/(85"`LKD9fuMVX8tLLri?-mE.P*AXNIUK]'e2#LXYej -eHa-In)qLUg-U;~> -$X)o[\D!1Kg=fk,cMcGsIeVOsK%>h5!2f`h"c_6i@8(V=g&XuGrn7CqNe,o8gfPmcqOUfg1,~> -$X)o[\^d1Yk2p/MgAU.6K_OU0M;a?S!3cAu"dS64B2EaMjoJC[roO73Q@\1Lk/ufjli5YgLXYej -eHa-In)qLUg-U;~> -$!H]Y\^c7gXK4P^X9!6bri?0"+-?H&!G89fX;$;GXI2kcZ*nb^iAa+NjD_!p&EJ,~> -$!H]Y\D!1Kg=f6ug&[2$rn7Eg-as!-!J8m[g(^Bhg;7CSD7SAsJ_ErOen)hSg3'ZOg4@u$g'6R: -hV*_4o)%,GbCT*H^@9fAJ,~> -$!H]Y\^d1Yk2oM -$!H]Y\^c7gXK4P^X9!6brN$$%OT)Z*nb^iAa+NjD_!p&E -J,~> -$!H]Y\D!1Kg=f6ug&[2$rRq9k[f4tk=%:`oVbNXSLtLG6M+j>jqq<62K4KjGQ.j_e9[VSFED3&r -^XZ[bD:[FpUeH5[g;?TXOP0Nb1j=7`J7skpeQkkhg=LXE97GUGBM;$]g=i]'Fk -$!H]Y\^d1Yk2oM>!l:YYq5mO6#HaO\he6qrT)DMe\AaS`\j5:u19nG>P;4 -b2Hl-F5l?EX\a^uk06_!R-"5-1k'ssLMi:;iF>^4k2V"h:ke&kDGX)sk2s-LI,hJ/Uem*4k/:)8 -Km;b?Io*N7f1a,LCZ5'N&U(tPGeMn3N94+!k)#ttk'O^kk(2[ -$!H]Y\^c7gXK4P^X8uObrN$$%OSu6j6)Ufc2K#U'M6(N@XD`C]XSubtUG]9a^D6.0$XI4C9L176B?*#r$XC-jB?*'81 -T<)CVXCR!c?;>^3I/'cT4KPWA8OH15XD2E^.X\>!HYe87JZR%r#.j6SeVDWDqpbqlKCA!=nCg3Z~> -$!H]Y\D!1Kg=f7!g&frLZi/SYE45`!%TCj1g-gkQGcobWS_B'kqq<72-_DoYGK":Eg1S'>[G#A, -g6]k6Uk7 -$!H]Y\^d1Yk2oM=joXXj]`$snG/4(=%ThQMk"(]uJ%4X'V<4#:qrT*I.B"hoIF)ogk&&.a^ZKKM -k+C)aXbl2AMWV/n^inl&Ss]E;1u0CZ-`V%8En'5m_k<=Xi0!/Q[H>`0k-K^&\pWX3P3.;'\pWY[ --Iq7.\)rCLk'h$:bGP's&Q%WP\RAZR_<-`8M`@Trk,"2kk(2[ -$!H]Y\^c7gXK4P^X8udbrN$$%OSu6f6)Ufc4KPVkM6&*(49.SBX<*d)P#dHHK-NK@/Tj=[XI)hc -Ue3a$Aun1rXK7ImL&S.R4Su37V*ghHQ;W_b4?P<9Sl7a:UTBhT4ADZR8iJjp+KR],XC-idOK>NT -T<&kl4?63=?>T>:&pJ;rXB(LcJnD*cJ:ME_XK6DcJZOF(bH(oZmap!Ee+*=c#KMJckJ6T@6@]~> -$!H]Y\D!1Kg=f6ug&ZT$rRq9k[f+ne;q'IS9\S3FY1bW09E7ibg)e+@\S\NoV(GA73L!Fqg;.@S -csBC+K%`uOg=ir_WW(TO9`*Nud8\1n^1al$9M@U.a_=FHcJ$*@9OcE'?:IU^.,%AKg3Kf=[bBG? -b1[q29M&dKG_u.J&snX4g24CSV1I@SU8*O9g=hUSJ_G\/bM!0[s5)Iaddm:h#Kq\dlFuc@6%A~> -$!H]Y\^d1Yk2oM -$!H]Y\^c7gXK4P^X9!6brN$$%OSu7>6)Ufc4KPVkM6($?XK6cMXEo;rXI2hHXFUArutm#\AXiXB(LcJnG"`#-(ggXK5ZcrN$$LGCciHXO4*R]'e2#LXYej -eHa-In)qLUg-U;~> -$!H]Y\D!1Kg=f6ug&[2$rRq9k[f+o=;q'IS9\S3FY1e-'g=i(Ng7"Veg;7@1D6J/rE7EUR\7rb4 -K4WbP]%UbJg5DHSg75$jg=iNSqqD2g9ATNZZFibP1nW[g.^5SH**Zo -g;Ghjg2+@Se=tZAY5HuSK"(^4#_8f+g24CSV1JX"#1mk)g=g\SrRq:GQ\!kAgfPmcqOUfg1,~> -$!H]Y\^d1Yk2oMG2VN%_JdTZ -MJD9n`TCunk*)S&k,#8:k2s"'qrTWh=jpm&D:!CXk01T\_rf`Yk.8t&]m8b1Rc`b/k"t4&J@;A; -k0H!:k&JB&i2c!h\GYIiM8B/Q#`#VGk&\K'Y)*)>#30pEk2q$&rT4-\T7Q-Uk0`;qli5YgLXYej -eHa-In)qLUg-U;~> -$!H]Y\^c7gXK4P^X9!6briA:^.Q2OQX@+?rL4ggdTdrR5V-Z8HN3&j2:9:Nq."<[p/"i1o4B8&G -;*8GeXI2R@@kFRZDEL%(XG/i"@]0+)10l2X-\*V4R79;7SUN4S5F& -$!H]Y\D!1Kg=f6ug&[2$rn9PN2+3ebg/fq"Wi%G'bVrVWdYZ.dSi@bTOM18-Os2Trg49P_hm -Ak[beg;7#eIQ>j1MbHg0g8[h?IFJ)I13P=I0qpJ?_,sBBaIkXh:qbS<6;1\'g=hfc9T,f#L!2JV -g7_2L8BTZ0CeR^?b;VbNrn7Fq'pS[N%?.FCg;7#eA&m -g4n&Hqq;:uJaVg;nC^*X~> -$!H]Y\^d1Yk2oMG)Hk-Il\K\u[h141j[1oiOYb["%[e#>Q. -$X)o[\^c7gXK3mSV>dOsN*PPI!H^?jX9!-b_lNp-h!D$hhX9,+sS,TJjJMF'RXF[J#X9Q9( -f@>Z*nb^iAa+NjD_!p&EJ,~> -$X)o[\D!1Kg=eE(dJhi#Z?59`!L-.Dg&[&$_qG1/Csqt0!F(-Ag&fQ:`W"QmUd!:Zg4@u*g'6R: -hV*_4o)%,GbCT*H^@9fAJ,~> -$X)o[\^d1Yk2nXJh>ZO;]R/i(!LujPjoLR@_r_$FEo$BM!FU`MjoX4Wd/N//X[:ork(2[Bjp(/O -g!tl,nb^iAa+NjD_!p&EJ,~> -$X)o[\^c7gXK7SFWr9"!RHL[OU@PAfJil/Fm]6D*r&at9hQ-fS4AVU@X9"fjm&U5eSGfMiV4`C@ -JZR5"#.j6SeVDWDqpbqlKCA!=nCg3Z~> -$X)o[\D!1Kg=j*EfDXD'_WTYQcLTZkV+aRUmb.Z!r(I*nhV&'A9Ou<;g&].Dm+MKk`r4TldE@*p -J_JK)#3,[>g4n&Hqq;:uJaVg;nC^*X~> -$X)o[\^d1Yk2sRqj8J*?bie-gg%+8-Y#%romcFM4r(mC'hW=oR:heJOjoNfgm,e?-dJ`2.gt%&= -J`b>A#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gq5aUh=Pp1\F?0/u!0clQ!J,C)X9+k?QLCmZM^5=(Sq`R$X9"bpr2]oVGk8!;X%`/e -#-3K7XH/+3l)XuYU7A"MX8nIAX9"WdrN$!_r2]s`XHWXb!EYnEXS&Y!]'e2#LXYejeHa-In)qLU -g-U;~> -#$LBV\D!1Kq:YkkDr97LP=bT(!5%^R!Mbpkg&f2L^$jYZYV"M]aJuuEg&]*6r7V0=R.K#4fO4@* -#2-#Yg:"$.l.Q6\c,S*$g&SbBg&\q=rRq7`r7V4ag:R@fPmcqOU -fg1,~> -#$LBV\^d1Yq;q_-Fl2<^Rn`_@!6+Eh!N_j'joWjfaRA6q\hN4-e$I0djoNbSr8n#MU%@CIjCRuG -#3E2"k.n=Yl/i)sf[8FEjoEBXjoNT`rT4+!r8n("k/I>^!HckCk4Rj@li5YgLXYejeHa-In)qLU -g-U;~> -#$LBV\^c7gq5aU8H/>V&4Sc&Y4R]?O4LhHn -#$LBV\D!1Kq:Yk/RGQWt9_mBB9^g[89XrdWD7T)g"]!_([W5[Dg&Z6$r7V1fPmcqOUfg1,~> -#$LBV\^d1Yq;q^BU>G#4;#05R;"*NH:q5WgF2[M/"]FFD^j'>YjoK_@r8n$QQh0>?jeh\4#38\m -k)DINl/i)/VhMDIjoA68joJr@rT4)Vr8n&Wk"u'>!M#U0k4Rj@li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gq5aU8H2al[Ilp7hR?Biu;4W@a@m!qiFXpZYA#]@,(8kP&>rA^W=$/U(XF_0L8Z]"Y -7QaA5poGc(XK67l<\dTBXI;mHG-%KE4CKLcSl7a9OK>O54@hi,P!M3-SbfE&Ug#rj6EFrb4Dq6! -5tO1eX?KHG4H0-<)HL0,9UVuC4Zl`:I3r>a?DX`D4ARQ/XK8$cri?3e76H7uX;G-$XK7RO4B6C& -Wan4pU37T%P9O&/M*"6,Xri?iT4A_Q%*b_X%*ccTi4CY7%*ef:hB`"k;P8ZABW2tXe4@fCP!^*PH -ri?-CF+LFcX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1Kq:Yk/RJtnTThJZj_RWQh[oF -=A3/@pt@#fg=hHID*Vi;g;IGoQ.jT,9RJIeaD"=E\(]Q09NtN5\Pl16`qnC(cZ;d.;qd"#9T.V= -;I)tfg.l3W9X4HJ)Js^m@)CX*9h]BGShPF`GLG3-9P$6:g=jYSrn7Ie=%oOeg)+k;g=j)99PfdD -f7-J6cBT`C\gqXOY"Mstg*+7;9R)!>\Pc,*g5CSo_dhE6=\N5?Z7(;QJM>g-H;&M0qUuX>SpmWl -d9NqGL!_h -#$LBV\^d1Yq;q^BUAj9iWDHu*c,3UZCsoO?Ki!$JS2kjkK];mk(>j[>I7NGOF\koIk,o\#@HQ^m ->u5.XpuWl!k2qgkF$jnOk0@X:S`\^S:kCC%dr/&^_<0m[:gdJN_cKZNdJDu?gNl\L=QYZ@:m:$[ -=(5"(k#6%r:qQSd)KU@(B$KJQ;G_DaV_`j"IGO%R:hi/Sk2t0&roO='>Yq["jqr?Wk2sTa:i_ob -j+^BSfpsO``%?&m[npH2jrqoW:k+/\_cK[Gk)tX:c=l@]?;P4X]IJafLbe,MJ5C[MqW8KQVhMD< -gjDqL0ri`B:fG0lVArEHroOr_:i"Ia.#[5a.%$f,:kR_a.'g*+Mu2WC`$.fMiT@?a:ga4a!`8#U -roO6ORXsVojp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gqQ(X::me>cI;>pW0n3?(XHuec3/"A?M6&@iX@T#]X:8QnXG\j8S<9nS4KPVHrN$-Z -U9&oXq5aUDD>pU[/!26E4K)/HXE/MhN3%alXI,9SUdV;5C94'`Ip&\NQVmU\'jH[!L,WjqXK6_b -RP:A84KO0!VlW#WXrEHeLO:old\B<44sJZPqFSZFrTX??<[!D/p^X8kB\X9*sSJc;_O -QVi=8orJA/map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KqUunAB#33TT82.C5G<)Hg:q:S8#Y-dY1c"Eg0;btg'rA0g9'g8TlAK7^h3Gs'm$_8WCDZ8g=i$S -`&u/q9\QC>eCmUmg*1Bcg80ASUtOIXT%ZN5g2"<^QJ0//f\5'$?/"#NDU-seV>An0a_]/S]l;HS -@#s#kVqSOug.^5S?-1gSfM:/Sc"bASH?Hi>eCo/MMjACYA(n03g89DS;4^CV9\Ofog95\rg(M!7 -[`@*EZ.c6Hg;1GUdT"rS9`Ag._=r!F -#$LBV\^d1YqW8aYCWtr'W/p)l6E57ek/qN&9Nonn[Wd!@_b&$q:'mdOTZUp1Uk2rJ& -c9TnA;!+u[i9!l4js"l'k,sO&XlSW+VWL@Vk&JA-T'"6QjQ>US@clguFP>l5Y579Ee8j.&a*->% -AXDP6Yi`]Ek"t4&@asQ&jAP.&fPo@&JU>@[hr]EtP+Hp"B]cnYk-'R&VW -^sV:l]&pCjk01j-hH8q&;#TMkQ_3E`CZ\IUMWRatXQJYUe)jKhk"tm9!FjRWjoA6UjoVXHXT%>_ -a_cUkp#ZJEs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gq5ap?H`X;VLod\VKOb"_$p:URXK5ccX?,j]!'L7^#s>;]<'39(XK4P_X9=YR -4=t1@X9#:bri?JiX?_XJ/1Q -:9:NZXFk&bX???\,$'l.JnD*A4Zk$*#b?@B?PS -END+u4=`q'MI)'HX/rD&4fk`S9rtFsWIuKY4?A.4H@&gjXHH"7/nM+LW'%.DX=sQ8!)E3g!'L7^ -#s>;Z;*6m+XK4P_X;+De4?PR(>`:e1;lk.)4;sclF`VSHq5aTgTDbhk4SGiWGB&28orJA/map!E -e+*=c#KMJckJ6T@6@]~> -#$LBV\D!1Kq:Z15SD)\BXkMLZVgeX!$r#AKg=geSg.^5S>Kcot!)3CG#u''qCJ7Dng=f7!g'"oe -9K@_#g&]c$rn7`Rg.^3od2bnS98cLCg($g1`F_e71EjaW%HeR2? -O4m&%9Ij<#YBR$pg"P04:>4F@@G9Gfeu1,n9M)1@S"4V1g::9Y3e5p]eP+[jg-#@.!+Y]U!)3CG -#u''mB1tlrg=f7!g(e!a9M@q0Fg4WRC"ehG9HhL2P`h,oq:YjTao0on9_R0@Q]H^Op"BW0s5)Ia -ddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Yq;r$IUupfi[cZ`2Y_E)=$rH(_k2q0'k"t4&@+P5;!)W[W#uKd7E)9A*k2oM=joiP* -:csU1joOI@roOSbk"t2:h&fHi:QnWSjpk5MctcHO>NULEk2tX.KDt!5;#9;S;#]Shi)eguk1O(d -B]eGRk-0U&k"tp:,'1]bY))5N;,B$Fk"t4&EQ)S:k2oS&k2t0&k2sH.:f'obqW81IGe`CJK')3g -Qf^m=:b,l7\:1f:jlY^d;Wd,gBBJ@;iit+4:ee3XUnr?Mk/1G#4br0"iDAZ5k!/iA!,2&f!)W[W -#uKd3Cf!i.k2oM=jqVH!:f'dHHb3+pDs!Wf:a=HOS=5h:q;q]eeG\M0;"j#PT9k,kp#ZJEs4PqX -e+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gq5bKQH*"*1EAZKB'XK4ObSoCc2 -PH-ZTXK7.@r2]l\ri@8*X?aLkfhnX=?uH=-9OEA?8"o4KCTGH#Kaa -A#ubG>ktHKF*4O#0s#\=X'J&nX? -#$LBV\D!1Kq:ZaHRG-B*DV<^'\7j1@XErSog"LYPfhC,R>KZis)OcW(k -]%KT)g=iQ&r7WGjg=k4Rg.^3of6+IRa,lFKfnhrIR#]j@^6HUk%/qe^Z=Dg.^2RCV$cofruFIg=jVQg"O_g`n@bog=f3&rRqp* -[+`Z:c.P1=g7s>SfmVT!CKe=Kg+(]Kg"Onp]\1&ea_9#RXK.5Ig,onQ -IG3D/FSXWHgABS.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Yq;rT[U?:UUFQMVM_J\)h[XdL:jlV$$j\Y($?e,&9)PWJXRQ9K5LZO:ck2oP&e3<_DjlMfFDqX6\JGSCCQ_3C$KXHEn -jaXbbBBJ;PjfaF$j\Yg9-?@#dXbZ%=iScPhk"t1%E5]>8jgcDlk2t-%jlY6;d,i$Ck2oLMrT4c< -^?3saf]>;_k,aL&jb2dKEF6Z`jsoChjlYED`oY=8e8F"%[Bu*ljuI,;FMd-7L?;Lo:utO8U6Od$ -K]_EVHMQ\NR[iK&60=r,ja:1mk#(6aS`[M3jlM0Xg`Lts[,t6I`$<^mc=gn:q;qune)c8Fk#(6k -PPO>AS=9E=!MO+Vk549Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gq5aU8H2al[S39#[XK4iR@'##EC8!dbFZk#54^@ib%XC3Z:3ipU4bGtTXJA!Nri??! -4bZ%rX@k/CX<]p0XDU1O6A7R[XBIb[XK6G*Hp"L3@m,N/O0"m84a4!/7Qk,RX;,_<4f#094["b* -=?Vsm4aBU^Uh2cGr2^m-4]AFQ4f,5E5_;FQ4`HiQ;ll'D?"IKHJNZ.gri?>u4^"kfKb]LDX8uLb -ri?Pu4bZNGsPcUs+:>Krh18Kft[%R6=Pe>-+fYAG -#$LBV\D!1Kq:Yk/RJtnT`_B0pg=fY'HJ58kL--kG(>"pUeOQirn7Tb9l\n@W#Mr=g&Z6$ -rn7fa9rUk@g7h;9]\;)$D>r5kY"_Virn7Eg9kXIZ*`l'^fM,B"bDk60@nipsWD._dJTZb%R8$Dp -g;c6opt?4@9q+i1g4)hr9siWr9kF=X'=LV0WS5irWD1"Y_+ea'En]6FJ+qY%=A@?"gb5 -P5a/:dS3YkgABS.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Yq;q^BUAj9id8u?.IjqX4[;;:6B;,Osf -G#?>N;5.Msgk\h8r8o!F;/bT*;;LA6RIBZKC(BZ;JX(bY`DDGin.mLA0g8>uBSCk2&sCpuVUI -Rf;FNh,.7)k549Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gq5aUc<9UC`Vu3=jWp-Sc0V&'B!I/bZX9>T"UhPDKX8o6tU]@@YXSejoV;83R6Ak]B -!L$^*X9+&JWVNUuX/)P+JE!X6UcG?SXJYok!3>Ri!E,EdX9+kQU4KECX9Q9(f@>Z*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1Kq:YkeC?X@Oe,7MlfBLui4iR?Q!LT/Eg'$'Sc\8._g&T_%cN)M\gAK7sdGjl1cq)X>g=#oF!86hp!GKFNg&f2cc%4UGg'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Yq;q_'E9QEahu)4/j6>\,5g]Gk!MH"Ujojc"gPi6&joFE=gAp0sk5jP/FLX5`7FgJ$Mek2-$j!9N\3!H-6_joWk)fR`2^jp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7ghQ-]mr'UOKe#WY?6puOmX8n%R6i_GsX8o9u6i^2FX94q[7"4*r"\D*rXK5e,6i`j1 -XPp5b]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KhV%scr)Wm0e(OoA=')*`g&S2OU`iir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YhW=g!r*'0?e)gbX>?e,qjoDge>6(;]joFH>>6&Z%jo`t7>H$NC"^tVok2q0k>6*3) -k2GG,li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZQ_i!2BCm!M-+YX8nuTX8o!nX9#>rJZS^L#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_Iup!6tGq!QNUZg&TBXg&TCrg&]jPJ_KtS#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`ai3!8.53!R]fqjoF%ojoF'4joOPsJ`cgk#4) -#$LBV\^c7gJZQbj!Jk.]X8t>$o;htm4nPf[X'fM?F'tR'X94NMN10.8!.+1:!gR/?ri?0Z@"n0Q -!d^qori?-#PQ%WbU/db8XS](']'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_J#q!N^VFg&Xa*o@a5t:A!6EfQr)%Oa>(4g&ne!Z,H%`!1WN4!k`iLrn7FXHDpDg -!h7o5rn7Bh])LCbc"tFOgABS.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`al4!OdRWjoJ/BoB$)7;Y9)UjFE$JR=N`Mjo`EA]?fm,!2T/I!loheroO9mJ?nb. -!i4tSroO6%`;\m#fQ,Dkk549Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZQbj!EtN_X:pnaG&aUbUQhCPTp27KPaebNP_T.<+.8@hTrb>]PcLic(nQ=BV6$&K -R]N?MUm7^@XK8+[T_YYkCOK`Hri@B4Pbb%TSWoD@Wg'Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_J#q!HPRHg(V66QB0bRcFh9QbIl'J]YrOO]W(k`+2Y\;bhCdb]\1tU+3:9RdFuFL -_qNPOd(Rc>g=jc`bPBioLn9'orn8X5][4sXa1T+>fY#SD_:mVb6+k1jg;V.b][PTb]Y)MCgg&[G$rRq9rYCYF)g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`al4!I2?XjqGkVSsSU%fuDP(f>cG"`mX++3hg[fB25;`oZ<(+k*Slgucf" -cKij2Tinbi\';7E3^:k0VT;`o#q:`l?Znk1@"< -roO:0ST+Pi%EZWOk1du>cID"=;!(URjoM!@rT4-0\:Nf>jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZQbj(g;s$XF4&I4`RR%=&`4hJK9?0,\='=;a(,]+bs&s7pN-C<)dq?D/_t5:99%H -<)nd=+&s=_,HRY@<*#[gX=J(7A;%%cJQ,T8B9Q=p<-Y5n6r[-=XEkmdDQKpT6Z,k4XCbF2 -#$LBV\D!1KJ_J#q(im";g7E%o9on#YDJF%+Ua;kR/V)QaBhnZ]+ffBn>'8PiC2/pcMiLrXA(mbp -C29u`-Yt)H/DABdC2M,ig+.uNI]1uSUha^DK"Gi6C73I4fPmcqOUfg1,~> -#$LBV\^d1YJ`al4(jNdWk,30;;O?P)FDuB"Sdk+jADPNM"g>*EoXk(mtqF5?!@ -j\c!=!QT0Yjpn8-E1,k$/\,kBcfS'd;#]SXS=9E=!IhP0k549Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZQek5+YcKXGpPdXCZCQ9RDbL6EEhNV,!_cXK"FbXI`7cXFG#D9oG!3Hu4.;G>>62 -NK%^bX?`(5RQRZBI>r\FqQ(O-UnFQcPujocG'$3JXK,ib@WSW3=fe\erN$L*(OW -#$LBV\D!1KJ_J&r50.Nag9PqSg457<@%=Ns;qbU!d::DSg=T0Sg;mjSg7a;+@^*.TSr9"_QXeaj -Za,C;g/5RW_bAcgT/)6g9G(iZ>Q5e7!I&$e(V[m_Z&6i_IWW!!P!#ugABS.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`ao551=N(k.H-&k(f;cAYm&?=QX/Bh.YF&k2]G&k0n,&k,OHQB=YZrVNRX(T4mB9 -]tBD]k#KJuc;8*-9HAbEkXFFDX -7V/YdW'%.DX>Bi[!,M8/!K^F^X8kB^X9iWj@YLnE=fe\erN$$r6iO.f>)rT`"?`ceX$-E_"dDre -XG&M1>69qg4SGiWF`[M_!FCY7XS](']'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_J#q$?EN-X*`RSQ]KijrcAfPmcqOUfg1,~> -#$LBV\^d1YJ`al4$@';I["@H&TU4e6rd"a)k.Q&GK`:*;jAP.&ctE=>!O5/oH5"/YUq1)Mk,ETO -?&.QBiDAZ5k!]2p!0?g8!PrpWjoA6Wjp@'HKX0aTGNS$arT4.9>5mXbGeX1>"An7Cj\c!="ikTE -k-@JUH31tG;"j#PS=9E=!IhP0k549Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZQbj6!B;MVdk41/Q]$A=bVQ6XJf#PUTCPiKJ81_Wc!!6GBg#pJ;%lqm1nH\HNjI;=Og?_^;2XEI%1X@n7cKrg1hLod\P=G;H6Q)pX4 -08HX1Rr^lSXJ]QXKl2X:/qp%pX9!HbrN$$+MZ'UW;a>o8#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_J#q6#s?de:+*j3H*WgEN,pYg=9k%ce@*rV`_$6f8Q#pQ^H9NU8a'NCO=c8A(l[' -WC17<5.+%q8\MZXWMt'pg1aI\g,RZ;S#MODT89JCGgBfTg6Gagg0^h=W7nLCXkMLRE2fgY^"UZ. -40.)h`0+$(g=1PEWJmju4/pO#g&[G$rRq9rYPm/UC/KQ9#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`al46$U-+i.\2:4E]f2GI"N"k2C2Fg?.PKYX#VYj-6.@TV14qX0RqqEJ!=VB]b>H -Z:JZY6GH=89ut5#ZEeo@k&+5qjuD=YUp?DgW/n6fJ(eLrk+,c7k%1i_Z0&Vd[cZ`*G-\E"a6(sX -5IBS8c^InHk2:omZBMWD5-il:joM!@rT4-0\GbOjDcMAN#4) -#$LBV\^c7gJZQbj!EtN_X:8lRP@L\qO(2[iXK7+sri?3e@q00NX9*EPE;lp[BOc@h@qVm=KWM7m -A!:Dd@s`QOGCciQ@q246PTFl>X;GeaFf_Zm@qDa=@r/5cA"p&m@sP/WH"1RfX:Lq5@uRLjQ"+<9 -XK7@j@rVFK#AI[oXHI('ReWrbF`[M_!FCZ_X9+V-EIk1q]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_J#q!HPRHg'raa\p`;d[=*JCg=iNhrn7IfI=6_Hg&d@aO8diSKRK?CI=p8#VqTj` -ICajn]-`X6g),]qPhOi_I=U&#I>Q[SIBqS\]mY<\ -g=if[I?+<\#D@Mog:;W[_t_pdP`l"!!I(aHg&eo6O+H!hir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`al4!I2?Xjpd<'`.[:8^P%9fk2rt`[I5Kjqs87S`](4KS\dIKTP>^K\>M4KVIVkU4eO*jq$!qKY6I0aFo5' -k2s:/KU2W"#E4>2k/2k*cM6N&S=9E=!IhQXjoWONQ\"9'li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZQbj!N';DX9+B$X1,/2?` -#$LBV\D!1KJ_J#q!Rc;4g&eUAfsfZ9Ggu`H!m?;Lrn7F\NnK!;#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`al4!Sr=FjoW5_jgX@QJ)L=g!nN=iroO9rQK<\[#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\Z>gqU4KCsXF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(qc%4T"g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Nq2fn&::k(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uYt(+H:rRJZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%R5+.'eEXJ_G\/o@aE.s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&j(B._L>pJ`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\uYsD>E+38JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%R48FL$JOJ_G\/o@aE.s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&j'KHG"gkJ`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NW#pZU7d(=JZOF(q5ae3map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\_7(+ZMiJXc-([lJ_G\/q:Z&4s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\`Np=]`$snf[bW9J`_OGq;qnIs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\uZ!Q1/ -#$LBV\D!1K]%R7I5[peng&Y8@J_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j*\6YNk+joJ[TJ`_OGJ`cdj#4) -#$LBV\^c7g\uZ1"M2@_'XGIsXJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%RG"Xf]Oqg9)a/J_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j:8\$s]Gk-l_PJ`_OGJ`cdj#4) -#$LBV\^c7g[&a:oM1MaZXF[JJX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K[+YPpY(>;Xg4@uQg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y[,qD1\:Ndnk(2[ijp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\?#[LpT+Uq:f)P@XI+\8X9!jAJZOF(OfSbumap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\CpqCpY#l!AS%Fdg;0]]g&[qfJ_G\/OkL$!s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3dWpZ;_9CMTd/k0("'joML0J`_OGOlcl6s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\?#[2pT+TiR$aVLXH.GsX9!.'ri?)kJZOF(Q)k2$map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\Cpq"pY#jU_84CMg:!. -#$LBV\^d1Y\E3d4pZ;]fbKJQ#k.mDZjoLUcroO2hJ`_OGQ0&;:s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\uZgC86N$qFCK2[M6*XH)+[c/XE[9eXK5*P859)b%p__qXK6I\88##[88t:o -#$LBV\D!1K]%S(G>B&g=fu<>@INb%sD0rg=h]4>D(Y3>E7!5D1UDl -g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&jp^@!CbqRt?r6\)uXW,%,HRk+Q1ak2p9c?t]K$%t.j3k2r*V@#F*T@$]JRF+NJ) -k+:]>li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\u[KaTK90UV&jlS5c^uZ31utHXJUDSXK6@gTUAHSXJ/XSXK86XTVSZf32NZYJ:XeQ -XIcKt]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%Sagb":=@d3b7';VBaG7`rs/ggfPmcqOUfg1,~> -#$LBV\^d1Y]&kU*ekP;hh'erIli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?)^rN$-LCnan$JZOF(Su`.- -map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7?GrRqCGLs9\VJ_G\/T%XD. -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3cfroOG^k2oP&k2oMGk2r>&k1j2?joK\@roO2WrT46[OP"O%J`_OGT&p7C -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?AfXIGWZVGM2Hri?-]JUsnR -XJ2d#]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7WOg;Lk^dUeAnrn7C\Uk.6N -g7m:*ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\E3cfroOG^k2oP&k2oMGk2r>&k1j2?joK\@roOJ_k0M<7hJ8@:roO6rXb#Vc -k+^uBli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\u[ER4;U,ND&7\[(Lj=*(Hdn_XE$!>=fa8)XBQR'XAg;tGH@l[4AD6FXHYC;X9,Fu -.=nROXJ2d#]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%S[V9H?gHM]JLq*IQ@1*DF*!g5nEJESfPmcqOUfg1,~> -#$LBV\^d1Y]&kNm:``H\OrgX6++rKJ*`0i9p:hS#7k/KXbjoXXZ -2hC+Bk+^uBli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gOK8IqJc;_PN$=mFXF[IIX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KOP0_fU]/sKZ7="Jg4@tPg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YOQHS$XT%>`].MQak(2Zhjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gOfSUi-p%@/!Mbp2XF[IHX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KOkKk[1J7Z#!RAB0g4@tOg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YOlc^m2GX86!SYSFk(2Zgjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\?#^kFk!Jm=6?RaT_kej=6HY#Kf(tS>ca_t4A;NOU-q+HVQ?7L4CtJfX93l54Fd4/ -"K5fm4Iu8K!G.ktX957n4Au0[!*Aor!KhF%X8npeX8uY(JZQkm#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K\CptiQ.4LfDW]XQbPTunDWf^hW'jeg&oZ29PFFZ!,hPb!P"6jg&T=ig&ZEFJ_J,t#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\E3h*S^cd%FQV]cf)+S0FQ_d%Z:@_eHfj(!:hJGDfNV0rhWE-\:l"$+jo_MX:oaBS -"Q4u1:t#.$!Jo5"joa@O:i?9p!-Itt!Q(6'joF!+joKqdJ`au7#4) -#$LBV\^c7g\?#Zme#WOfk,\PFqlBd9kH#G\Ml`aBXC?pcN`rMWSZI$TX? -#$LBV\D!1K\CppVe(Oe\k1Tf/qq;%/kLp][YhIK)g3fpSZuXl-a4cl@g.^5SHE?ts"&.G&9`!HG -W.*IS9_d -#$LBV\^d1Y\E3cfe)gXpk2lY?qrRmCkN3Pq]&qgOk(9u&^3JdNdcR3hk"t4&J[P@:"&S.B;#9;W -Z%_?&;#'/RU=f8'!IVKVjoCY?joN]/roO5ZjS.d;X,DPk`o[Kks4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\?$u=XK68)?:A$pXJ/WUJukn^4Dcm)UfolGS?/fN4A/bFSO5M@U\_&-QTR^Zdg!X93PZ4BMN`'g=7OXF2s@3G(UZVI)H,XJdn.D+:,lX:nHtXC?pcN`rMW -SZI$TX?c"N&+>>pIXH>VZ*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\Cr6&g=hH_G?8iug*V:sFL9Su*0cuMfW`nK.P9OD\Ua&PfNchc?2^e@h`g4EIH -9Ushjb@4/)MRY[cF`5V'g&mNW9Q'j`'i$gDg7CZe8:jgpdWeHKg=8EdMcn0sg(S)6g3fpSZuXl- -a4cl@g.^5SHE?ts"2 -#$LBV\^d1Y\E5)6k2qh.IU%/8k1OZLY3+Yt:m"/HgNZOpdH9T':h=dqdTKCggA9qIb"u@*k)!Dg -:o*79en7gEOi'<.HZn0@jo_(m:iu^!'iRl*RcZ%_?&;#06-B0F]*]K2NYHedb*.m["Yk.sl*k2q/*E)<\!k*el+ -k2s5q:K?Q26!NJ_5LS\pMh1$1jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>gbAH&YR-Aj"-4K2AHXD*/qK<0DVXHJUFUdV;=@B?"KK3"hMO]V=Z!'L7^&0R%8 -4KP;YS#fOoX@Q0HOHB=?!'L.[!'L7^&2J\eJip,AM6(i@XD0tGTmld<'0N@t@YUtE>-(AfXESZc -4KPVlL\\"QX&bG\X9=2eXK4PZX:.mmXK4[+XDE9cXBgb^X9UkhXJ[2*X??K`!Jt1_X8tJari?E8 -Krg>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(^J,\.F0Wlq49\+'og4c5NVV7P,g:=TEcrSl#HeQIqVesi8\8M)q!)3CG&1P$@ -9\Rg0`7epKg080o[^Q%d!)3:D!)3CG&3ldJUeKKeY1f,'g4rLoc(Ojc'27-6I&bo-EnXm@g6[lS -9\S3HXSLQOfkn=sg'"@'g=f6qg'hN/g=fDag52BSg30^ug':=*g=.Rag._M"!NgYHg&Xt$rn7[, -WS4b"g=j8XeUcGpg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`NpsLApS8!)W[W&1bNX -;!-JQcfT.nk$Vu:_8,p0!)WRT!)W[W&4!OmRXjoJB@roON? -ZKAoGk2sa+iIU.3jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>h)8H,[u4KLZH4J`iV4?-h5ri?SlXJ/cY3CKrWLTISKJn"_\!'L%X!'L7^%6U_n -4KOuHXK8=mX@SEHX8kB[X8kB^X9Leg4KLZH+T=J*:onDJp8esSDQKpKL9-D=X@o+cGB']HXK5fb -qQ'am=.B#e"GC -#$LBV\D!1K\_7),>lNFb9\N1o9[OkS9LsV+rn7iUgL0 -9\REog=k'"g0:uZg&OhDg&OhGg'17)9\N1o./lmBB%i#sp=^4MMqZm4WnOh#g0_nSQ]Kiog=gkS -qUu"qDoDJ*"K6e'g._:q$tR6/g/6DSM4NASG-Lnu#>Ek*e5G#S9`E`HXa0p"!D_;Hg'Pu,g0DeS -g8fYSJ_J/u#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\`NqC@K,Bs;!(U::u*3i:eZR>roO\ek1FfQ9O$Y1[H?W#Y(Q`9!)WIQ!)W[W%8c3L -;!-&:k2tRPk$YsujoA6TjoA6Wjp"ZE;!(U:/,i?ID!$b?p?!'aPNM"Z[-#)Ik%)p&TU4e;k2q6& -qW7k3FjKmG"L3[Ck"tj8$u4&Lk#LC&Oeq4&I(K7<#>jRFhcJt&;#]SX[t"D>!E/"XjpBXHk$cg& -k-Tg&J`b#8#4) -#$LBV\^c7g\?#Zmri@8*X?@cTR1C&XEQM&G]9`s7')8PXK6c0,^Y"$EZMLAn7S4T;Dk4KLZH4KMtGXK6?AC4?)^!F(3TX;Gr$XK5lcXH$Jc9:`/. -END:(XC-gbXF"LWX92OdXDe*>%:X^dXFt,cX?Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\CppVrn8Mhg.^3oeo/1SbFF9[g6Y.[Q]BdPKccp"&.F^WrC]P9`E`T9\N1o9\Olog=hP?LS+Lu!Hb4;g),m;g=gqSg9bnS?cUle -O4m:]g3TjSg73Wkg&l6&g5Z*c%=Fc$g8KJSg.^5Sdq$/jg'hN/g=fESg52BSg30^ug':=*g=0$S -g._M"!NgYHg'CI+ere\?MI_D>g&[q$rRq:RDLpNcg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\E3cfroPA#k"t2:icW6&etn>*k+G0*TU+_t>NWGEk2rJSEnoflGPL;#;#]Sd;!-n: -k1b"&k0C*k@+P)7"&S.$Zi9(e;#]Sd;!(U:;!*A:k2qrkNi;mr.%>1P?k-9X&k"t4&heC11jpZ"Lk2o\&k)lM&k'Xc!OmRXjp4lGigJrkP%fjRjoMN@rT4-gFFiSujp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\?$u=XK67mIl2m5M5=378><(t4E3E`VHc6.0TW;t4?RJ\TgLqFVY[A.QTQraUh2<9 -K.q#@Uea*JUQR>nK(uDbMEFe4XK4T>4H4bCE(+n7HDb164J/Q02f/Jp!gajHrN$icKWM8N:cqFH -XJ&$E=J`*f4?R2RXJJ*Hri?ej4?PO'XI:;HXK8@14?T19XG7CHri@VE1-0lC0OUn<5-.d@3-;7' -OZY<[Wa@H>I5#WAF#YsXXK8'X5G5*ZV,*?TX9!ibri?1$:b%$tbcD#[map!Ee+*=c#KMJckJ6T@ -6@]~> -#$LBV\D!1K\Cr6&g=hHITgPbAY0h#Y>Kt`Q9TMg"dre?O4gj"Q9MC>qbZ.>Vde_Z3^e?jac[n9[ -VEBUecX]^ZcaZ/2V>/a^Y"WQVg=f:a9XCUrs!l#qArRr*^VqTkOAkZUY -g<Cog=k&*9MEI[g8bsorn8l35=qKQ4aP^I:YK\P8!DZ\ -[nJnXfQfWdSii%eP".fVg=j_E:s7SHd:Bohg&[q$rn7G+AMo%mbh<9\s5)Iaddm:h#Kq\dlFuc@ -6%A~> -#$LBV\^d1Y\E5)6k2qglW^j8fNM*qh>67Jb"t?"gPJ2& -YX"31gM'Jtg;?3OY5%,s\57(uk2oT-:q`blQ<]q[UYp`#:t4Gn8W`r6!m2dVrT4rsYib*&CJ\Ws -k1Em7G2;<,:f)r+k1im:roOn`:f'^Fk0>N;k2tTU:f,R%k-Po9roP_D6;=Dk5_.lb;s&0j9:Y/, -_,*BnjF9G.Va-R1RS-(mk2t5l<7^3oghFe-joMN@roO:CCH-n-biT,qs4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7g\?#^JHh"0\\X9"YbrN$$%OT)<_V'h[^XN[aM -]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\Cpt@SFP;6P*E*&!G[2Jg&eTKchQ2pH#iZ5!Cip8g&\s$rRq9j[f4t^d5&RigfPmcqOUfg1,~> -#$LBV\^d1Y\E3gTV"*RJR[gMB!H -#$LBV\^c7g\?#_2Vt@%nR63TSX7*+iK`!q4F6fn-Wr+sZ:#i;UVQ/d[!NN'lX9#6!pT+@ke>rb" -3] -#$LBV\D!1K\Cpu9e+D>s_G!Xfg$dVpVu03gOmC^$fDJ;B@cQ/Ce(Eg:!S>fpg&]^TpY#VpeCk"q -8jpJog&TP!g&]mSJ_J<$#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\E3hQht6%6bYV-+jmV=3Z2@DuRHru8j8;^RBB/+ThW3h]!TW)3joOB"pZ;J2eE-k1 -:.WS-joF38joOT"J`b/<#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\?#ZopT+UK4?RVbXGCB\X8uOdri?*TJZOF(Q)k2$map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\CppYpY#kF9MCQ%g8o_sg&Z9'rn7@RJ_G\/Q.cH%s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3cipZ;^Z:f*M@k-]m:joKbCroO3gJ`_OGQ0&;:s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z?[IKWM8TWN)ntXK8?]W2Qf!Wgo6RXJi1uW;`k/WK!XRXK"=[WN -#$LBV\D!1K]%S(UeYq3Uf@JR(f\5'09%DMHg=O?Tg=k*0e^aZQ&(\)3g=k.Ne^iI,e^rO*eq)P+ -g7I"&ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&jpmiN_P-j5T+XjQ>U`:>t0ok2Xh+k2tX`iSjdu&)t:Tk2t]!iSs"\iT'%YiIU-B -k+:]>li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\u[KU5U`_8E$8(D>cakh(-kWrXE64+XK4-H5XL1+XB-R+XK6:T5[pgL(2KWh6@l4h -XIcKt]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%SaX;)?q[N[e[=FkYAC*)U2!g64aJg=e_n;,jOKg28CJg=hK*;1.)s*/Mik;hfPmcqOUfg1,~> -#$LBV\^d1Y]&kTo*fnr,=FoUc -k+:]>li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\?#Zmri?>YRB/QPXK4P^X9aSiXK6YDXJA8`X8uIbri?)^rN$,hV5mp\JZOF(Su`.- -map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\CppVrn7T>_V.`;g=f6ug'Fa+g=hm+g<`n"g&Z3$rn7?GrRqBSdFi`JJ_G\/T%XD. -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3cfroOGNbiVdak2oMGk2r=Qk1j2?joK\@roO2WrT45ch;j$rJ`_OGT&p7C -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\?#Zmri?>eXK4RcXK4P^X9aSiXK6YcXJA8`X8uIbri?)^rN$*r7@Qu%XF[IDX9Q9( -f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\CppVrn7TNg=f9Sg=f6ug'Fa+g=hmRg<`n"g&Z3$rn7?GrRqA"=2eU!g4@tKg'6R: -hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\E3cfroOG^k2oP&k2oMGk2r>&k1j2?joK\@roO2WrT449>gR)6k(2Zcjp(/O -g!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\u[H_R5LD3Tf&XC2P7%<24:DEXJ0r?Suc^ -#$LBV\D!1K]%S^e_F)2lbX9b+7*4-!6c.C-g(PCYg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&kR(bX]n:fLO`R8CZbF8'KoRk1QDKe)l^Fk0$TYk0e"Eg?.O$bbh`/j,$@KroO6; -?\.?jk+^uBli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\uYn*r_EckGYa*V:N*32:D]D"XF*f>B<5$-XD:UrXCG%%J?5i9:Mg$3!K::_X9+qC ->Cil,XJ2d#]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%R/.raZ8VQt38,A<#.=A/E&8g7;bbKA($Mg5':Pg3mLBU>">5A;U<>!O?hHg&f;R -F+N%rg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&j"Erb;\gTk_!OC6[]VC)>(Uk+ug-MWShlk)X8sk(IJaX6/Q`C6AMX!PEaXjoWsl -H@b40k+^uBli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gOfSVP=)\)>!g-Q_JZOF(U9"R1map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KOkKlRDN4YL!k<-uJ_G\/U=oh2s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YOlc_iFHujf!lB' -#$LBV\^c7gOfSV'='pN[JZPBC#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KOkKksDKp`dJ_HXJ#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YOlc_2FFSl(J``Kb#4) -#$LBV\^c7g\?#anMNNIkJZOF(orJA/map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\Cq"mY.&u9J_G\/p"BW0s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3k.\AEgZJ`_OGp#ZJEs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>m`>@)7EX9+/PG(H`GXF[JQX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7.[FEic@g&e?bQ@[b@g4@uXg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`O!pH@D+TjoVr(Sq6$Tk(2[pjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZC"7;@FOXJ(5tSZJohNCs2O"."OjNW-![JqS]VJZOd2#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1K]%RY!=,3X$gg4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]&jL6>`PuDk1Hi>dcT]J]jq'("3I^K]`.$oY-J`_mQ#4) -#$LBV\^c7g\uZio2H+4^XB9(H;6-e"Sk?)cRTF*52QWuoAn>k2XF[I3X9Q9(f@>Z*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1K]%S*g7;@D!g2DOnBA)"maBmTS`,:-W7,$@LJU`W0g4@t:g'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Y]&js'88j=;k&lK9D<9pBdpqP&cZFu!8ET&oLk_+Ek(2ZRjp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7g\Z>g9NW-!pRZ*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1K\_7(+ZMrPn_OI#Rg"P0$?J=,JDk!6?g7)N?RTlV>g4@t;g'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Y\`Np=]`.%/bbV$qjlY^SA*2prFekhbk+lXcUL:6Uk(2ZSjp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7g\Z>g9NW-!bZ*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1K\_7(+ZMrP`CQ"**g"P0$?N/X_Z&=Ncg6Z%CMZCbJg4@t;g'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Y\`Np=]`.%!EKcSCjlY^SA,bTp]9AG.k+H,]P5rs\k(2ZSjp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7g\u[$)4^O5OXAa1L'o&fUBeaq8O$.Q*>cau8F)tWJXH`mKJZOF(OfSbumap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1K]%S:$9m=)#g1c[t)l_Q*Kg2'\[7udGFkYMrOcagpg:[TsJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&k-9;16:Ck&6Z?*4+eKNC'E&^JUDeHfjFBR@/H;k/[Y?J`_OGOlcl6s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7g\uZKqF`ihJXIaQhM287"F`i)5U],B9VuEdtFTm])X@YLKJZOF(OfSbumap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1K]%RalQ'Jl5g;oPYXfU6kQ'IoocMj(/eGe2%Pm+DGg0I@sJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&jU,SXmX[k0om-\$kGASXlY?g&@NBi;Vm=SHZUek$h-?J`_OGOlcl6s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gS?)^&JZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KSD!spJ_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YSE9g.J`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\uZgF@q1@sXI -#$LBV\D!1K]%S(KIX\EQg;AAg]%YlHIX];jg8]UNdbg4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]&jpbKn["uk08U6`9-3tKn[q:k-ThrhWEsuKo(BCJ`_mQ#4) -#$LBV\^c7g\uZiWKS3?oXA";#8?8X^KS3($Pur]m;QPO^KRdZ*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1K]%S*IW2OLLg0gkX>hRS6W2O1Z]l0jJB\KA6W1nBbg4@t:g'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Y]&jr\Z*A;ok%1g&@HHBXZ*@s(aEFhnDW\0XZ)`5&k(2ZRjp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX? -#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@ -6%A~> -#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7g\Z?]n4BJ>[4KPVIX//1bX? -#$LBV\D!1K\_7sg9Q&529\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y\`Og':itIS;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4) -#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX? -#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@ -6%A~> -#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7g\u[$>XK5BcX? -#$LBV\D!1K]%S:?g=g;Sg.^5S:"dong=f6SZuOgR9\Phng<`mSg=37QJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&k-Uk2pX&k"t4&; -#$LBV\^c7g\u[#m9heZ^XC=mu=feT)9hf3#T2nZ\EibO)9hg) -#$LBV\D!1K]%S9c@:=#tg3d=;ES8o^@:=]?a_bHpOP7?]@:Gk_g:[KoJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&k-"AnH,:k(@8XGNIh-AnHh\e8f/5R-)G-An\.*k/RJ:J`_OGOlcl6s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7g\uZgMS"$4TXJhVXVQ?krS"$@XXJ;8SX/rCrS"0JZ!]=DcJZOF(OfSbumap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1K]%S(S`Pp3Xg==0]e(WO(`PpB]g<[aWf\5''`Q%o2!^qCdJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&jpkd*UP0k2=V5hWEtVd*Ub6k1\2/jQ>UVd*_jT!_7k%J`_OGOlcl6s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gS?)^?JZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KSD!t:J_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YSE9gOJ`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\uZgB4[!tiXH5S.KrhA,4[#%2XE$HeU9(G,4[O_$JZOd2#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1K]%S(E:/7,/g9saOW7ot$:/8FTg6#-*cJ%!$:/leuJ_H%9#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]&jp\;Gs+Kk.jkmZKC;O;GtKrk*]+Fg#hFN;H\S5J`_mQ#4) -#$LBV\^c7g\uZi\X/f3aX?Z*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1K]%S*Of[srOg.g5P:>+&qf[rpP[;jjO:"ktpfZmQLg4@t:g'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1Y]&jrbjQ(:"k#(4#;WZ_ -#$LBV\^c7g\Z?^KVGrh^4KPVIX//1bX? -#$LBV\D!1K\_7tQdV?JL9\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y\`OgihJgNt;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4) -#$LBV\^c7g\Z?]q6 -#$LBV\D!1K\_7sk<,U"89\S2pg!NdQg.^5-ESB,?g6[iRcrP_OJ_H(:#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y\`Og*=EN9Z;!-n;jkX)%k"t3SGin-bk+J%&gfo?lJ`_pR#4) -#$LBV\^c7g\#^EGPcR!KX?EV\6`d@OXH$GbX? -#$LBV\D!1K\(V[6]\6'5g.g8J<8-&"g9bkRg.^4eNnVi\J_G\/N7nKqs5)Iaddm:h#Kq\dlFuc@ -6%A~> -#$LBV\^d1Y\)nNH`o^+[k#(6r=m"jCk.Z*&k"t35QKHt,J`_OGN91?1s4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7g\u[$%XK5BcX? -#$LBV\D!1K]%S9tg=g;Sg.^5S:"dong=f6SZuOgR9\Phng<`mSg -#$LBV\^d1Y]&k-4k2pX&k"t4&; -#$LBV\^c7g\u[$.4?R)NXEH]gCTOOM4?RqkV-c>IM6*@M4?o+4XG7.GJZOF(OfSbumap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1K]%S:+9MBi_g6PE+Lt^L89MCr0dWnM[Y1h'89MiCUg8b[oJ_G\/OkL$!s5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&k-@:f)f%k+5CGOQPV_:f*qLh1&6t\)u7^:fYQuk-PW:J`_OGOlcl6s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gS?)`FI=\JNXH9Lf]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KSD"!+Sq5UHg5t"mir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YSE9i;Vh*u]k)e^0li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gS?)^XJZOF(O/rPsmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KSD!tYJ_G\/O4jfts5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YSE9gpJ`_OGO6-Z4s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gZ`FY&20Z.!,s4:FXHG%q4@/tJ!Gs:]X9t:\4B%oSN]]F0V#%.pE'-7)JZOF(WN6<8 -map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KZe>o'6^QNU02,&)g:B199N1rE!K&`0g'YVp9PV`(ZqO/:d/)GuO%`62J_G\/WS.R9 -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YZfVb>7\Jo#1/Le7k/98V:fmYY!KoD;jpK75:iOtI^/.XSh"p.8Q;CDIJ`_OGWTFEN -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\#^3g@'$FtE,VhWI]TV5XIkZ*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\(VIaH.ptRNfDcDTA&!mg<-MNg._M"s%N7B$=:g-QB9gjg=ghSqUu0Jg=f6Sc!\A= -g4@t[g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\)n=!JEGuuQBgUlW935=k1-p&k"u'>s%rOR$=hQISs\Z9k2q3&qW8#Zk2oM&fk&BY -k(2Zsjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZ49J4OOMXFt,/DuHaE\ia#s>;j4KPQQ -:L8j.XF[IVX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%RJ>U0NW!g8KLgNW%Q3KVA@u#&:g)g0)Zoq:Z1)RA,8-g=jK>F1D)##u'(,9\S.= -A9Y/,g4@t]g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]&j=VX'q1Ak-9Z6Q2ThGN2lj=#&qTEk$H\:q;r$;U8s*Ok2ssiH,KL@#uKdH;!-id -C43OAk(2Zujp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uYs@BV>@+"':V1DuHa<@YXi_#"tMgN*NGHq5apCAS>A+XK7Ot=I/fb"$EZd4T2>_ -MICm`XF[IWX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%R43KZa;J")bW:NW%Q3I&d/!#%,F)Z?4eoq:Z1:J:r*Jg=j&iE528'"&.G&9` -#$LBV\^d1Y]&j'EMq.gh"*DDRQ2ThGK -#$LBV\^c7g\uZ4+4Dg:`X=nft:B% -#$LBV\D!1K]%RJ-9T$F8g,k[;@fG'_a^<^"g'Fg,g"Md&Qo22Gg&ta'g6Rj!g&ZK$qUu$Fg=f7" -g&n0lA^u@cJ_I?^#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j=D:m/cZk!#JYB`@,qe7I_?jp8GHjlW4MTfB^]jof2Ck+7t=joL"@qW7lVk2oM> -jo_f4CZ0j,J`a3!#4) -#$LBV\^c7g\?#p^ -#X#2i4KP2Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\Cq1XChh[hNal>ng&]9$rRr -#$LBV\^d1Y\E4$lEcC03Q"a\+joNq@rT50.K')4?Q'F26k2t)hc0".ue)m6hk(Vs[J@=V&Q?3&f -#Z0[G;!-A,LqWcL!F)^Xk(2[%jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gZE+6r4KGQbUMTn1!L.s0X9XGABWS;+4.6)L#Xpj_XK89]4Dt/"!H;' -#$LBV\D!1KZJ#L]9\J.RcADMR!P=m#g'=QMK\G/#9>^\^#Zj]Eg=jtK9T/o(!KM!qg'4WP9X3=* -g&0P*XrjKkg4@tbg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YZK;?m;!$j%foZ0p!QCl5jp/1gMrs0M:X&h##[C2Uk2tMs:m1h?!L@d*jp&7j:qGfO -jo"6B\0.r*k(2[%jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZS[K!DIrnXF[IZX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_KqR!FVROg4@tag'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`cdj!G/6]k(2[$jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\?#_2V7ir2VPrFS"0%i^VYR:rV4aokV#HndVlZWlSH,YgX9"rjq5a[pSXleVX9,)d -TD5JhSt2YTX9YDpXK8@kSYu:b!Ml`HXL,&5]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\Cpu8dCn67dam@1"4kN5e+q]#dE:1sci1rdeCr1H`rO]ig&]@Eq:Yr!a2cg-g&fO> -anXQkaN)U)g'>gKg=k)ta4'kfPmcqOUfg1,~> -#$LBV\^d1Y\E3hPgqDhNhVmDT"6.bWhYH::h:C`Ng]#V&hr`SjdK&;+joO#hq;qe8daI1OjoX2` -eG//-e'ctKjp0Jmk2tXNdbjl_!Sl^dk-X7Tli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\?#^HII4*;HXW3,X9"oLlDt"tKDqqPHhONDM3Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\Cpt>T'b55S9qs:g&]9tlIl8hVZ,9LSG(Y>Y.:UeVZ(oB\G4b[JmVlaqUuY/DDp5& -?WUT$O4m'1?T"q=g8I_oqUu)"DdQk-qUu(^B4#,FqUuLP?XIN^g=i`2DVEfn?XIg+qUtt>Mh0Th -g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\E3gQVsWUJV1QeUjoNu@lK/,&YQ!YaV=s$S\AP`:YPs+R_YE6qM.C/&qW8LFF?/LG -A6WS5Qf^nNA2q!Zk-7d:qW7q9F_#$EqW7ptD.I:_qW8?eARo`%k2s0WFQV_>A7ToFqW7gSP(Dc& -jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\?#Zmri@*:QBn>JSXu@;VlZ>\R?jkSXHZh3XK%SSXI5BRqlC+)QBn2FXF=!3U\Lo( -R[0nRVjPFB>QF9!#*YWMr".TDbhk4FsT@ -X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\CppVrn8@@^:qtJ`lZ36eCqga_7nRUg:M9jg=O'Tg;:STqq;A0^:qbDg7MrjcM6*, -_nO^Ue%WiC^ -#$LBV\^d1Y\E3cfroP3WaN3,udF?Oahr`29bfJi,k/DJ9k2XP,k0;!,qrS4GaN2ook,<(:g%a\C -cH+u,hoO0naP>q)Zd\(!f1*j-puW9;Q?D?45I@e+jQ>UOaPZ.=a@=7troP*R_be,1\U@<:k/u]G -Q(d?Zk2Um%k2C3HK_jg6ctDM';#9;WP,.6cB_pj*B]A0:V<6faS93oUAEN#Rio3e4ec"V1:k@c9 -jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\?#Zmri?W<;GpStCEleVA#rW_;c7Q5X9iijXJ@ICXA^XCqlC*E;GpPbXAUTILA@nb -LK%/bXHt,CF<-FDCbULCXFD6gB_e_JU+eV\TWC8WX?NYcNDrebXIW60;JE56G?7iEX9(Mc4T)8\ -4T2>dS4p#cNE_*GqQ'gh9rtEYqQ'g:HE -#$LBV\D!1K\CppVrn7m.BP;;:LFd4SIG/EtC1rS*g'Ne,g<_oig1`Liqq;@4-$g;dkPBSG0oQ>UR=g&at%9`3TE -9`u*DS"Q=A@QOUg'>9,f\5&8CjuB;!).st[+Y`D -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\E3cfroO`ADJjRXO"PEiK][5;Df1g=jp@?Hk1`(4k&3<4qrS3PDJjL@k&!1tZh`_t -ZuBo@k/o<4RjPo4O?p)4k,KbGMtuKRfg&:qf&ffkk#1:&]Q%hAk0e,oDN3f@T655SjoSBA;#KGU -;#TM]d:MJ&]m6o:qW7q-BBJ>QqW7pDUuos9puVhBFN!=dC;P)kjp/nHjQ>TcEeXMT!)S7/[,qSY -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>gUEW3$YOcGGWX/.bNXG1/D8uSh4FKDQ_Gc[uaHE;U1qQ'pgNfHnkXGgEZX9tLc -LlQ%^XIE -#$LBV\D!1K\_7(NO8diP\?rV.g!N:9g8]P-?IdbmPhOiOR+g8PS(aQiqUu1h['XAGg9Phqg'Yl# -XL*M5g;IrO^AcgeJ>W>"!)3.@'@BKZ8C-!V[$?^+e5!$NML4(29`E`IYBQrEg&m;&g._J!!Q/FG -g'=m*g=flSWI=Ws"N=g'g._@s"H/c'_diMr#gRD+g=frS\8M<"!lK!$rRqIeL5t!AMjo:O[FtiE -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\`NpcQN$"c_S3`OjkWP`k-T`SA)ZR=SEAt"T]YC#UZSS8qW8%*^:n!)WFP'AZJo9\\]!^7L\Ri)6nqOb)ZW;#]SY\UCa^jo^jBk"u$=!R5?W -jp/JFk2p1&Z@r):"OLfDk"tp:"HoSCc=m%9#haCGk2p:&_K>e>!mYu@rT4=&NgAhiPG<]k[H7\Z -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\?#Zmri?f>>$<&LV*h>cQ;W`GXK6ncXK6Acri?/`X??<[#AmXJ15N#j>kkB$ROS5> -"bs+[>#hU%X8umbri?)^pT+dt0KUn[X=%1RN3&m#r`TDTXK4P_X9j)P[Iq -4T;Db/5e_dV>I=sRn]uc4Sl,^D0i:P:ALsl=- -#$LBV\D!1K\CppVrn8'/EcNS]d8\iR^1alng=i6Sg=hRSrn7EIg._=r#E!PB5HWYFFSOPj`&%C5 -"fg;1F)9J-g&Z`$rn7?GpY$&$4\@cYg+m\eZ.dYXrc/+9g=f7!g'O*aD;*]k;.q5Mrn7BQdJ_c! -9`E`K2eZ&NdJMW#`F7KS9`!HGMjrG -g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\E3cfroOoBG^(_"h-&n&a_eb:k2r\&k2qu&roO8Yk"tm9#Ej=V6al-hHhc_(c8PZH -"gd@RH#hsEjoL7@roO2WpZ;n;5YaJnju%C+]B7s&rceOHk2oM=jp@Z&F6;V:#X`K82q7!3FPm&Z!fqAUroO2WJ`a?%#4) -#$LBV\^c7g\?#Zmri@#2L2[lkV&+3-=J1ZrI>1q#XHQ^lQ)q'I.YRW!$;uV.+`ONH=b^.VqlC^9 -D0L_ZGb[]SL-;32O\]SVXK5-NFFLX53gX@Z*eXIi@EL/.`L,U%92XF"]:Ht'1YNu"4dXA3nm?%T/IQ=`+O -X?:oc5H:\FI@pJ>!'L1\!>p69XLkP<]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\CppVrn88tWfA%0d2e@LDp,L8SuQhWg:M9I^"V2J25g9($>HN6.ZW5oEN4-,qq;t? -MO1?1REns)W_LXi\7C3,g=g#9PG$X`Rj%aa'QoFSg;#ejdWN+RP*)c:O4($iWn.1'#gg+U[EcLa -0t.)8!EIPGg&OhGg(2*8FA^QAg0J+?gg1$>IG,fPmcqOUfg1,~> -#$LBV\^d1Y\E3cfroP,0[$D]Mh&i&lFk48VVmL^&k/DIka6)O!33i;A$?!5N/=#A:GI2\NqrSgW -P+]1UU"WbIZr,E:_J+kMk2p<`S#PQ4Ua,j#'RQ-gk/op:h0[*%R[LO\Qeo)6[,M#H#i* -#$LBV\^c7g\?#Zmri@$+@X*9IV*fB7S?.`RCLX-AXF"DcJ#o`DZ*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\CppVrn8:-I$gIpd8ZBY`S.\=Lj[Y)g73PLYBoMHiVRhg&eC(Xo@#TT[s(q -!1`u@#)@TSg=i'frn7IYI!j-:g&Zi7rn7F?I"hRR"iu) -#$LBV\^d1Y\E3cfroP-DJtT!;h-$;#d,r&eOFl -#$LBV\^c7g\?#^mFo&0@LbXP]X9*B.M>4.UQu5'_XJ5WB!0?iT!0I,.!28YY!EH%^X9!C+rN$$( -Tn0;VX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\CptlQ2929X?NK[g&d=7Xn^TR_2D%7g -#$LBV\^d1Y\E3h-SbhIM[R.1sjoUlO\+o(hbEGiZk1T[3!5J6i!5SN3!8$Jt!HI%^joLphrT4-+ -fR`1rjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gYH.eSBlF!P!d/4%poFX[Bka9BSc!1%JbH/FK)B<_S:RbmXK/E,]'e2#LXYejeHa-I -n)qLUg-U;~> -#$LBV\D!1KYM'&MKoH#b!gJD+pt>nZKn[b)a8CVkU\Q#I`IZ`og8ip3ir@lhL=5Yig'>fP -mcqOUfg1,~> -#$LBV\^d1YYN>nbNKjG)!h>7CpuVapNK)QPdeo()XS1cVY5F7Zd"1>1k,[VKli5YgLXYejeHa-I -n)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gOfSS\BS!79XIH9q]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KOkKibKRqj.g7-e#ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YOlc]$N.L,Bk*tK;li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g];ud2GE@-1I&sE*DjRQ,Q#DP.N3&"WDl -#$LBV\D!1K]@n%2QaW?hS_Df!NPF3$]T'(cZJ)UDNRRm\#E=kY`nI#DS,(b?SN2\5rn7X_NOl'g -VPfElJ_G\/WS.R9s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]B0mIT>726VWR$KQ-&1Na-F04]]QklQ/DT'#F1^sdH7 -#$LBV\^c7g]Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]@nLD/9!"Y6e\_iR:jsnC708k\AE?UR;ps4HC:$NTpCM&Mil]ig(:&CRC:i'\TO -#$LBV\^d1Y]B1?[/p8ak8*7@5Tl&Z>DkVV,_T[>"Tm,YZJ>&MgWh, -#$LBV\^c7g\uZ)uX? -#$LBV\D!1K]%R?^g.^3og,Aq`!D?,cg($g1g9$$]7,!ufg=iF"?iJa[B>=>t!RFjGg&OhGg'35a -9\S4F=b5:Xg8`j2ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&j2nk"t2:juNF!s%r^W%T) -#$LBV\^c7g\u[)bHUJ;$IeXJInXQ<8Z]2lqCCXK8:f9rY4n;OI?_'Ve*uV5^O`V6$bm -X>d&YQqsfbT;7%>JZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%S?%g.^3og.%O*U8V2>ghg=jum@b08aBYjT"'[Kk7dFR#OdG!=! -g-sKE_.D?Sb0Y^nJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&k25k"t2:k";DLX0Q$ak1r\ma`XYV8`ln3k2tOGBAr"4DTr"?'\ZgSh;[R#gudbO -k"4Imb\H;&e_>Z;J`a,t#4) -#$LBV\^c7g] -#$LBV\D!1K]@nI6.]5D033^#6H?tJ!C3jeQg;RrUCFHRDML'Sf];9UqFeJTb&(G??DSb&EDL-V] -g*L`bDuSGk/8TmkJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]B1WFj&pmFFf"$ -jsPD)FoLM(/olO*J`a,t#4) -#$LBV\^c7g] -#$LBV\D!1K]@nFJXMV?_ZGtV4XK:.0aK2^Ng=jEF`j!PVaK32Vg'tm"XOl0" -]<'92g5Ir-J_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]B19a[EQA1][5f_[C,/Ze$Zkqk2sprdCRfhk-_V -#$LBV\^c7gYH.l+=]ndmn#QMWr)j#Cp8e=?+'SWE!JHnmXF[ITX9Q9(f@>Z*nb^iAa+NjD_!p&E -J,~> -#$LBV\D!1KYM'-1E,][1n(IcYr,;Y%p=]S8-Z]1>!N3hdg4@t[g'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YYN>uIGB\,Pn)aVpr-&.4p>uFM. -#$LBV\^c7gYH.i,O,oh!X8o-qNrYUAX9+iOOFaKaXJ`-(]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KYM'*3[^O0Cg&TS![K+5=g&f1#[Xm.`g8EX/ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YYN>rJ^qe=bjoF68^];XQjoWiD^k(X!k,7>Gli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gQ)k+1D60gTr_W`bXC2$)"f8<%X&5&VX8nUd;$Cm>XD:\!JZOF(\uZ+Imap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1KQ.cA)MqZmArau;Lg3N[1"ju&XfOqbkg&SneB*F7Jg4s=TJ_G\/]%RAJs5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1YQ0&4=P31ngrbMY\k(*GI"l8>'jD;a1joEO&C^$'ck)X?#J`_OG]&j4_s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7g\Z?*KG@R_U4Y/]XP4YgU9)>V+V1khKKOm6HXAkOQld!JZQSe#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K\_7@?Q[RTA9fPg?\b+SU?2E7ldAbXLVgqFog1nC;C9?3&^Vg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\`O3RTS2Ii;*.TN_t<'kA,>=)h6Pu$Y_Q$:k&AJcE44nGb0!`7k2p-(U\a*^]SjqT -:Ze18b';(kbe/MhJ`a]/#4) -#$LBV\^c7g\Z?ZQE*03CJ7u$c4KO9/8X?HI8Y:*7XH"2j:Aq7!Hqn1HXB:QHrN$'p -#$LBV\D!1K\_7pCNc<_+UP%:S9\QLP?,#%2?-8@[g9_u.A,Y*dSn!2og2OJorRq=uCWHG.#JG') -g9PgYS+kVFMji@WSD(hjg8fF'c%4T"g;)DHir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\`OcUQ?MEQXGc6';!,)n@`dcY@b%!&k.W$KB`7&uVJ(Y:k'"O:rT417EROjK#KV)G -k.H#(U\EmZPG@9&V<6$:k-]VHfR`19k.p*`li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\u[6M+=A8%XFOucX?;>KSt9,MW_?cAKn-*\StE*cQqD.fXK7RcX??H_!Lld]X9XGh -XK6#cDL2&Y%R?toIV4*u:TUXsSjm4hJZOF(_Q3sQmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%SLQ-o!*hg7s;Sg.\YsaiSS8f3iidW1qg3ai`>k^g;i@g=j&Rg._J!!QALGg'=R* -g=h+SMjsIp%T1d1T7`b;AD5bha]X&CJ_G\/_V,4Rs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&k?h.PrU%k,aL'k"rR?eC8`_j( -#$LBV\^c7g\uZ:3,:at/XFM]c6@h8uX9=heXA`m4X8kB]X9+GTFoJHE8tN+HrN$$-L]+:Z=HKVc -4KNFHpoFa]>H4d+I;4U7rN$&p>,["RJZQ_i#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%RP7/2f$!g7pE%;km%cg'#-'g1c?@g&OhFg&eZgPlBA=?HChorRq9uXSpiXDn"HS -9\PDopt?"\FP,=$SqjIZrRq<^En,`pJ_Iup#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&jCN00(W4k,^FB=KG?ujoieCk&-4XjoA6VjoW;.SGqXQA(0R:rT4-3[Jf4mFi!5& -;!*t:puVjrHK=5NViJ9$rT4/oGi=59J`ai3#4) -#$LBV\^c7g\uZRG=DV! -#$LBV\D!1K]%RhNE/ADag7s/Gdb8lKg=i!Sg1e8!g(-m2fr.J_J)s#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j[fG*-h,k,a -#$LBV\^c7g\Z?HLEETBE3$hk3XK#Pg4Dh0f*]/6CX942>5)K6>#GQ78XK6%MLAn7S4oDA]4oMG` -W[BS$X8sSIrN$$ID>pU@>Wcf'XH.f-X9!>GJZOF(`N09Tmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\_7^>O)`n-7PAr=g=LLA9T.WA-:47%g&n?K:TaTL#L/@Xg=h0!WrC]P:&N]F:&WcI -fJ,Vig&WdBrRq:CMZ2<6FA.MEg9mRNg&[9?J_G\/`S(OUs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y\`OQPQZqTS8hkbVk2Uhc:m0tb-q:'4jo_qd;n)_f#M>F!k2qOAZi9(e;Z,YW;Z5_Z -j>94&joI/WrT4-XOoFJIH;K^ck.dkmjoLhTJ`_OG`T@Bjs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZS%9!>gTDXF[IlX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_K;@!?S@og4@tsg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`c.X!?\e%k(2[6jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZS%9!/lE0JZQek#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_K;@!3h%.J_J&r#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`c.X!4maDJ`ao5#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZSmQ!Ml^nX9#&rnZ2_anZ2bgVr"KVP;8k`XF[JNX9Q9(f@>Z*nb^iAa+NjD_!p&E -J,~> -#$LBV\D!1KJ_L.X!RTErg&]IOn_*uen_+#leDAm\\j4Mkg4@uUg'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YJ`d!p!SlZ4joO/rn`Bi'n`Bl.i83St`'`1.k(2[mjp(/Og!tl,nb^iAa+NjD_!p&E -J,~> -#$LBV\^c7gJZSmQ!FCW]X8tkbnZ2^QnZ2b+Ibh(+8tLU8JZSdN#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_L.X!I1dGg&YF$n_*t:n_+#!TAA3%?-.ZOJ_L%U#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`d!p!IhQWjoJl@n`BgJn`Bk4W86S:@aotkJ`cmm#4) -#$LBV\^c7g]:4KML8QM[`uAJI=>XK8C:4D:[p5r+-F@AkJ'4HoTB-_*:`SY@iX -4A2?KXFE?69!"@A4CY4iLceKuSue_k4F=0'0oTg?Tn0;$X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]@nI#7>FKeCO -]@tVO9V'n\.QpJDg:/7q9\7l]9\O5C^AHV!J/V+4g=k,59SD!N;Eq-?I+9l/9Y1&R-cShVa3Hl. -9OGusg7V,W?J<.f9RYCDXA!2%akG*^9Ush\5-fiMb^nK(g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]B1<78WHQ&>3=[k:n6\0Qr&E7Qf*Zr:rMMYcqm`"\(GCkA_-b@,I'P#:k[`g@Zdfi -`TGs":o3=+/3m%Xk//?8:u^M';k,D1!AEM$2:k[`g[SU^ -#$LBV\^c7g\u[)1IP$+5XC$gcF*2MHXG/1*SV!rE4KO]HXJdq"aLV8>,s`"DrLeR8-**f -XH=Qa=fe]Z@Y86nQmA9)>)o\%H)t@AJ"2.BXGEq^]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%S>lT/rcAg3BdSP*D&og8Zs_a/.MD9\R$og=8KVD8P#HD9_t3'1S>BWIKd$""H&`'_IWJr!)3@F%>US0U4h77D7+35g4ufPmcqOUfg1,~> -#$LBV\^d1Y]&k2'W'.7Zk'sl&R[fb:k-Hu.d]V`p;!,];k2A_$F3WjpF4gBP'2"q[Z@qAP5)eWm -k'+T&PG@8h\GbOj@+P>>"HfPCc"["9!)WXV%?IFLWf6)^F2)bWk)QD8js\/gk2CC&JnO5[Giklb -k/&O\Gin.pKWg0nbV7Q/GeW=)U?6r1WmIr#k(r.(li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\uZ)uX?_>XK8+\9E)!n;3q*\!'L7^"?`cE9r\,n -#8fQc3a&OjM>aLV8>,s`"JSAe9:bm[!'L4]!&+=6#skYoLea;-(Af -XK7k0GlFcT4B[`HX@f(c)*C#B=KGkRJZOR,#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%R?^g.^3og*lqo!G5%)g($g1dsXn`5MDHag=jca?iJa[B>=>t!)3CG"AIOT@b1P4 -#9QW58o`R0Y5R&T>Kd$""O1*'?cVur!)3@F!'C0R#u]L2X^f-"g4ug4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j2nk"t2:jsp@,!GbO2jpk5Mhh+a%6ft&-k2t::AcCfmD9;\;!)W[W"An6mBB&pQ -#9Zi>:3YiL\GbOj@+P>>"P@&CACC;9!)WXV!'gHZ$!69O[V3eFk)QD8jq=@E:f'KdK!a[SGiiPb -k2ssSU&O0b:j9\:k$lj&+])!1G34:GJ`_[K#4) -#$LBV\^c7g\u[)lC`< ->E,_^Ff\o+XDk8B8>*&'XK6G=@ed#=4KOC'XDN -#$LBV\D!1K]%S?%g.^3og3TjSg5_A\g8Hd\ZuOfe6JB%eg=iX7DSb&GD9_t3#=as3VL[C+FT'o- -F0jTLQ.gJcg5an@>Kb`\g=hX"I/)D09\QY\g5;BRg5an#DRXE7g4ufPmcqOUfg1,~> -#$LBV\^d1Y]&k25k"t2:k(0r&k*DL+k-6f+^3Je67HVR/k2s+cFNimoF4pHQ#>1NKYD;8PHi<(@ -H+i@tS`YC2k*G/l@+OJ+k2r%HKD=RC;!,:+k)uP&k*G/MFhr(Zk)QD&QMT_i`c:/'[`3p+k.Z*& -WK$'&QG@\+k-0TGK]^E0eE2(ik22]kJ%,@ -#$LBV\^c7g]r4CkClM`aj==KJB(4@,X61H9ITX9+Y%H@`/VX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]@nI#4-*C,:Rfj[9MER]P>$Epg=CpNN^]\ra\5BSe'DT!@F"`'#YU=SJCW@[5]$GR -'[h%r;p3n@@na5_g<3Gh`nK.sBX7Ee'Uh^?e(WE29MDkJ<'mQHI+lq_9W@jA--8hSH,i3Rg0d1d -g8%D9R+fGO9RkUHYY8YIE8&`]9N''X5t@+;g&er+Rt9:Pg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]B1<75F,KD;l&<%:f,['Ro"f2k2D4pQ:\.>e5/tmhqDgAB%d%C#Z$mcLZ%<*6ur:h -']"%2=4ZNfBi)M*k13X2dH9TMDS5c,'VeKRhr`s^:f+ph=@KM[K'(j.:p]u[-.PjhJC6hlk%7!/ -k,hHVU#sTr:kmoj\km3cG37Y-:fl6"6qa!JjoWRCUOhQdjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gXK2GRBBZDs4QNRETguAh!D%0\XGa.a]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KXP*]MK':ng9]Xn.bZ_:*!F1Y9g5FYhir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YXQBPbMWj1&:upa>f3bfF!F_:Fk)8@+li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gYH.l*4?R8Un#QMQq`Fp:4HSa-"bSloOfY&M49/XOX8l)p492;3X9#/uJZOd2#.j6S -eVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KYM'-/9MC&in(IcQqb.&X9Xa-<"f=p[\D"n!9E95#g&Pa_9E -g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YYN>uG:f*&/n)aVhqbR>_:r)8V"g:]k_WK2B:]Pk-joB2p:]TD*joO9!J`_mQ#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\Z?$B13K\"O$#FRXF[I(XSJq%]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\_7:45F'sV[S08Dg4@t/gA0G,ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\`O-F6_3B%^edaVk(2ZGk5"-Dli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4T2>^9O`RSJZOF(s/ZF9map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\_7(+ZM`DV9` -#$LBV\^d1Y\`Np=]_pml;#TMWAqPZsJ`_OGs5jOOs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>g9NVojX4T;D`NZWFqXF[I(XT,@+]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\_7(+ZM`DV9`E`IZm_5kg4@t/gAfk2ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\`Np=]_pml;#]SY^+,_*k(2ZGk5XQJli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\Z?$K2Kc+&O$#r3X9!B\JZOF(JZSjP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K\_7:@7$ZK[[S0m(g&[@rJ_G\/J_L+W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\`O-S8=eo*^eeD;joLp8J`_OGJ`cso#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\Z>h%VLbh"XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7)(dXg,'g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Nq?hLXg?k(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uYt,.ZK"\JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%R5026qeeJ_G\/o@aE.s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&j(G34sh)J`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\uYsA;2p..JZOF(o;i/-map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%R43B -#$LBV\^d1Y]&j'FD7kG^J`_OGoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NIe0^XF[JEX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+Z@U_\g4@uLg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]Rf3rk(2[djp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZ!b5$sHOX8tgLJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%R7]:3a8Ig&YAFJ_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j*r;LcR_joJg[J`_OGJ`cdj#4) -#$LBV\^c7g\uZ0gFEEYHXH+6KJZOF(JZS[K#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%RFbPEWK0g9i#rJ_G\/J_KqR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j:"S"%:Wk.`(>J`_OGJ`cdj#4) -#$LBV\^c7g[&a:iJUsnRXF[JJX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K[+YPiUOh-Mg4@uQg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y[,qD*XF]Mbk(2[ijp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gVlTlIJZOF(KWGBhmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KVqM-CJ_G\/K\?Xis5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YVrduXJ`_OGK]WL)s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gWN60#BeB.^.AAX[X@k@@TgLqFVM$U:XElO@QTRj@XCa@KAZVt50pQi6G`jdC4>qbA -XF[I]X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KWS.F)KK8k^.Et.Ng0d1ebZ.>Vd\f3]g7(3e^eA%fg4D^\J(iUm5J<:DRCGFQ9LP\- -g4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YWTF9AN'-pu.G7-bk%-s0f32!ph6B2'k+b//b"uR0k(uW"L?@W=6HGZ]Tu0/k:e7^> -k(2['jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZ+1?!W2dXI/um$*88sEa>09S:Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%RA6G'9k=g;3c3$/(T7OESRr`h?*$g'i=*VR(?^Cs^nDES=+cg'LI,g8/Pgg=hgS -rn7au@bTO0g=fcSg67_Og4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]&j4MI!i9_k0*aO$0@_SR!d6BdAg% -#$LBV\^c7g\uZELMi1T'X@\>.6E?1aG)JulX8kBXX9N*T4KOTHXDW?cVc%eIWiU>a -ri?Kr:9:NZXK4sJ9:hi.XF[I]X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%R[>Ycqo[g0Lqe<8"]#Q*=Tog&OhAg'2nfC9;QVI/_h19\Qmog5MKSe7b:rf@lLP -rn7au@bTO0g=fc4?c^HBg4@tdg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]&jNQ]"2n*k$kp5=lmF@T"8G2joA6Qjp$C+E4:,!KDt!D;!,N:k*)S&heo0 -#$LBV\^c7g\uZF: -#$LBV\D!1K]%R\>ChtuAg37@LZeEf+g=f7"g&OhAg'2o)EK5+>I/_h?9\S!5Zu*b8Z8ueSb1`,C -g=2P/@bTO0g=fbC.Fj"'J_INc#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&jOUEcO.Zk'h>k^#n-Rk2oM>joA6Qjp$CEGF!N\KDt!R;!-\W^2qT^]010ge`NEj -k22lXB]eGRk2p&f/)c'AJ`aB) -#$LBV\^c7g\uZE6P)VDbXH/O-7'!.OXK4P`X8kBXX:ersTIO0*?)ap!8$&e7Amh^A8H+bf9<<8W -XJ/1Q:9:NZXK4scS:#^cWf!U'XF[IaX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%R[#]!=c;g9nN'=4tu#g=f7"g&OhAg(Jb5au+7HG1PBk=k_SoJU,u'>Q22L?eUd- -g -#$LBV\^d1Y]&jN4`4S[]k.ejQ>NO[Dk2oM>joA6Qjq<6QeMhceIH'DA?KUC?Lk+XM@/e([AEKGN -k1O(dB]eGRk2p(&d&*]&j1*ipk(2[+jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZWa:/NWFX<^P9=KH0WPCjg$S5("uV#.5$Ub#->>?e1Z:JOiOri@/'XK6ji:5_jd -:,Ok'8OfLW:/5T+Q68ao20>pn!/#j(JZQGa#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K]%RmW@qIc>g+HlFE7omk\u-aA`FC*%d/2N)cSo1aF*$'0A7K>`rn8Deg=i2DA$BGe -@m`Rm?!5Nl@q1;J^+!;s6^-6J!2b>$J_I]h#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y]&j`kBP]hRjtLI^G3+W1`NUV`ctF\ -#$LBV\^c7g\uZLDR[p4FXIP`JVQ?GZVkfcVWW&=dWr&k)Wg]HZWM?PrS!p#KX9P?!XJ;5QVYZ_d -Trb&YR]3BerL*kdX?TgcJZOF(\uZ+Imap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%RbJ_oL'Dg;UtIdb;j]eBl+Yf)EPef_aA0fYb__f$E((`P]jsg'5aSg<[[Sde^id -bhCF]_q*PlrPJceg/)b=J_G\/]%RAJs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&jUbcI1Fqk0VE!hWEA6i7uW2ir74'jSS'HjNc08inNVXd*C2?jp'E!k1\,+hYPM& -f]Lr6cJn!ErQYQ&k#?N^J`_OG]&j4_s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gUT=GgrC-c_f;nt$JZOF(\?#nGmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KUY5]TrE0,3f@g4tJ_G\/\Cq/Hs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YUZMPerE]J=fB*(4J`_OG\E4"]s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gUTFBf!2G+HJZOj4#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KUY>Xj!7$/LJ_H+;#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YUZMR0rR_,'J`_OGNTLH2s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gM6$\gJZOF(U9"R1map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KM:qr[J_G\/U=oh2s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YM<4enJ`_OGU?2[Gs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gM6$\cnuMn./8]s>JZQ5[#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KM:qrVo%F/#3/W:@J_IKb#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YM<4eio&^"64-G0WJ`a?%#4) -#$LBV\^c7g]A%#P;*:3EX9!]bri?3r4@lIKX:'tIJinNKXIMCIDGl%eJZR+t#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1K]@nI#=Hm-PB%kmh9VgCrT1k#POP,Ue9Zl)CekAu3[+B"cACp\3(!fQI8\<]l9PE/6 -Joc3_F+S:aB2$,?g&[b$rn7J!9O$-Gg'b/VUeII[g;Q`pN+ddrJ_JB,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]B1<7?(>GkCZa]7:p&mBW)/LiQfXK/:t=^ji_W^P^>j-.C?,0Q("uJ\9uc><:i>FX -M0XW%H&6X&D,ACSjoM?AroO=8:gi;[jpSdpX\c$!k0Qq;PAYs6J`b5>#4) -#$LBV\^c7g\u[)/F"2DsXCm*cB7YMHXF;FrRX)!94KOoHXJ[Fl=d?(V=/>_p"?`ceI$Xc5!'L7^ -()hoDK1;:MQE48MXK6ecXK7XcXIrObqlC,h@l\6cO]SWR+HqAXJZR+t#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1K]%S>iOu8V#g4H-SJu##og7L"O_jT649\Rg4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]&k2$RQ-s:k)$5&M63_:k,9urc(X:^;!,u:k2/"jGK8jiFkcfU"An7CVTAc!!)W[W -(*^(,Y?oL%al[i^k2rP'k2s[&k14P&qrS5bKhRG%_K=qd/&d)%J`b5>#4) -#$LBV\^c7g\uZ)uX?_>XK7hO9E)!n;3q*\"G]*%BW;!4!'L7^ -(-JT\U.1SHXK7=cXK6ecXK67h4?OsMqlC,hWB@7EA;%%c -#$LBV\D!1K]%R?^g.^3og*lqo!EDhmg($g1f8**o5MDHag=jEQ?iJa[B>=>t"KP3iK\-4W!)3CG -(/3=Ubuqtog=icSg=i*Sg=hEB9M@.Hqq;BRekFdkI](oRCV,/OJ_JB,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1Y]&j2nk"t2:jsp@,!Er>!jpk5Mj,d)66ft&-k2sq)AcCfmD9;\;"LV'&MrXg!!)W[W -(/X$ifj;s;k2s7&k2rP'k2qdd:f&s]qrS5bi_\c6KsBe&EQ*LkJ`b5>#4) -#$LBV\^c7g\u[)OqlC8lWB@7EJnD*W0pA]?JU)gJJZR8##.j6SeVDWDqpbql -KCA!=nCg3Z~> -#$LBV\D!1K]%S?%g.^3og2OLSg7Etlg9N]lZuOfs7,"tfg=j!ECW>)NCs)Y/"J4?$H*.)"!)3CG -(/3=UbuqtFaP)BAg=i*Sg=iTRg=idPqq;NVekFdkV1I@D5.fP&UR?\eJ_JN*#3,[>g4n&Hqq;:u -JaVg;nC^*X~> -#$LBV\^d1Y]&k25k"t2:k'+W'k,4-I>!)W[W -(/X$ifj;rde)lXhk2rP'k2s(&k2s8(qrSAfi_\c6Y))5k6,i!KXJ1:.J`bAB#4) -#$LBV\^c7g]bnHf4Z*nb^iA -a+NjD_!p&EJ,~> -#$LBV\D!1K]@nI#/!!,a5F]o:9MDtKKM6GQgf-?k,#q<1FjSjX9Iif_ -Jh*cNVCnQ9?;.-Jg4qjPHJ7)W9MBWVr7V[d/:(HM;M_;G>>i)ee4rklg4@u*g'6R:hV*_4o)%,G -bCT*H^@9fAJ,~> -#$LBV\^d1Y]B1<7/XAu!6DW7X:f,'jMbn^fk1tJ_LGl3q_ba0Qf[",*@EnZ2,$If>He[]*:b>Mu -M(PtbY;*%R@o08hk)M_iJ`c++:f)Ppr8nO%/qI;a=-'X`?rt>0hbmI*k(2[Bjp(/Og!tl,nb^iA -a+NjD_!p&EJ,~> -#$LBV\^c7gXK2GZ?Iu7ZRSMnE#+nqgXFW('JZOF(dB!P`map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KXP*]XGh:XM`+%c\#0Lf)g8$m]J_G\/dFnfas5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YXQBPnIb3]_c=l8##1[eEk,go+J`_OGdH1Z!s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gYH.l*4?QrHn#QMQr&asin>l[j.STH8!1WmK!*oE&#?ErYS?/ffT7O(pXO+$Q]'e2# -LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KYM'-/9MB]Yn(IcQr(I*>nCdqZ2IZ42!6"e/!-S1m#Am.>`nK.nb(88tgfPmcqOUfg1,~> -#$LBV\^d1YYN>uG:f)Vsn)aVhr(mBInE'dk3+hdE!71R>!.4V*#BN^MdH9TGeUck6k0W5pli5Yg -LXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7g\Z?$K20H"%O$#m_XF[I(XSJq%]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\_7:?7$ZK[[S0hTg4@t/gA0G,ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\`O-R8"Jf)^ee?gk(2ZGk5"-Dli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4FsSbXF[JKX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K\_7(+ZM`DV9S(oKg4@uRg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y\`Np=]_pml:k@b[k(2[jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\Z>g9NVojX4T2>^>A\qmJZOF(s/ZF9map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K\_7(+ZM`DV9` -#$LBV\^d1Y\`Np=]_pml;#TMWH'3a@J`_OGs5jOOs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\Z>g9NVojX4T;D`Pp:'qXF[I(XT,@+]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K\_7(+ZM`DV9`E`I]e"tjg4@t/gAfk2ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y\`Np=]_pml;#]SYa=iU*k(2ZGk5XQJli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\Z?$B13K\"O$#K&X9!-CJZOF(JZSjP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1K\_7:45F'sV[S0g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Y\`O-G6_3B%^edf*joLQkJ`_OGJ`cso#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gXK2H"T_PSnVk0KZXK87unZ2ekSu[FDJZPZK#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KXP*^(bP9creB,h`g=k!,n_+&qak;7!J_HpR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YXQBQ?f(eA4i7-98k2tL[n`Bo4eE)8DJ``cj#4) -#$LBV\^c7gXK2GR-MXYI>"M;LXK5QcnZ2eW+.n+cJZPZK#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KXP*]N0_j?,Ea;t^g=gPSn_+&X-d%"oJ_HpR#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YXQBPc1\g);G[b.#k2pm&n`Bno.Fj"3J``cj#4) -#$LBV\^c7g];uR=RB3?RWM#cRQ_gdbUmI`:ri?d%Q`@-aQSk,%XK7nEU9(8ZV3dbPX9k\hTWG5n -Q^gX>JZOF(UoXd3map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]@mhB_V3SUf#u(U^X:chd(datrn8%'^Y%8g^I,cYg=jNEc.^[^dD*d%g'Q*?bM(\# -^VsI#J_G\/UtQ%4s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]B0[Yc0"!-imuN-b1u.AgWJ)DroOm=b2h^@a[XG'k2t$qf]M,7gre+FjpBebf&l,R -b0XSIJ`_OGUuhmIs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g] -#$LBV\D!1K]@o*@1>9c(]UC3aB5cJSDJ*cCg=iB:B8tWSB-_,Sg=h$6[G&DIB4l"hg=:(RCrP+[ -B500DJ_G\/UtQ%4s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]B1rU2!34D`hFo&Cj"k!FDPtWk2rgaCmF/!CaNtgk2qCX^ZN]lCi"(,k2:>tEmWs* -Ci;,[J`_OGUuhmIs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7g\uZc3XK5BcX>HTO4f_AHXIhAOPY$do??N?N4T)8p=c]Yc8rB]nENDl_O+B]3JZP\1 -T7O(pXJDp%]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%S#qg=g;Sg-Ws9:"a'og;u_9]3VYLGEgh89`3TYEOFNS?E`(KOP408[\QrVUY=*g -b(88tg8*F,ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&jl,k2pX&k!dh_;<;Q;k0uo``aZNpI@TH^;#KGiGJE;&A%:ZmR-&%Z^o^guXQJ;7 -eUck6k+q,Dli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\uZ9%XK5BcX?NT -T7O(pXJDp%]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%RNcg=g;Sg.^5S:"`5>g&k%&Zo\2*"0pS69`3TOEOFNS?HCidOP32'E!Cf1[bBG? -b(88tg8*F,ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&jAsk2pX&k"t4&;<:XRjo\HB^-;O?"1mXW;#KG_GJE;&A(0S3R-%$?G6WeF_<0lg -eUck6k+q,Dli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\uZfGLjL.jQnP&)0U%l,Lh@ftW+LL7FF^'?08]\0)377,S"r*"XC#/4QWf3$>G5/T -Fr?(:X@Z-;XF[IOX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%S'5XILT.^c]]^4hJOMXF_h:eUjEpPG6:&4Ke\;)7E\/`6_,Vg3@Yl^N-EWFN\X) -Q6<9_g0J0=g4@tVg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]&joG[A>7JbHEWiJFM@S#b/K5Ig^T)8KRFceD4%k'qXJ -Sg(T)k$htSk(2Znjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7g\uZgF?u:U:JmaV(@!\o8@"Em7rXF[IOX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%S(JHA\\^UjBD]HCNWrHD?P"g=h=.PM3]rH@GkI)39)iXi5UNg4"D&g9c0P`nJL[ -OJA&oZQbrkg4@tVg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]&jpbJW[7(Xb"4-JYVABJZP3Ck2q\TS*%bBJVF*c)4#i)[a0Mpk(J?Kk.Q=sdH8o/ -R&lh?]d0G*k(2Znjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gKrb<-GCciHXJ`-(]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KL"ZR)Q\!kAg8EX/ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YL#rE?T7Q-Uk,7>Gli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gXK2GgJ,$)MRWs(LXK7V\nZ2neGc7^6Rt7YlXJ`-(]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KXP*]hU%m=H_jQq7g=j-an_+/iRFU$1`.?Wng8EX/ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YXQBQ)Wqb]]cCpr]k2sY:n`C#+U#G.\c[k50k,7>Gli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gXK2Gc0DMUR:2b'@XK5QcnZ2nc0;#>6:P#TuXJ`-(]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KXP*]c48@M7@uZJfg=gPSn_+/f4NcBpA:`Hcg8EX/ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YXQBQ$55=7FBpFt2k2pm&n`C#(5Lno?C4YMuk,7>Gli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g];uR-Gc[WZUl0bZEL3c.Q#V[Dri?cYEMon,E@5a^XK6hhU9'u,QZ7ZWX:1>5Mla"R -EILKOXK4O8XF[INX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]@mh-R+fiHd'07HO2'E&]oT?jrn8$RO42h#O"uctg=i0[c.^:#^lPAlg'kWTYhIgT -O.]b#g=f5Og4@tUg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Y]B0[CT]XpogUaGoQceIQa-X>5roOlfQf$rNQSk, -#$LBV\^c7g],'4;g2OmXK-5WG?h,;G:IfqXK7";O0#!17sAEpXJ/[ -#$LBV\D!1K]@o6Y4ke4R]X8o.QXSRnBpX#qg=V@DQZ^p"QSk,7g=iAu[G&ei>*jZ8g -#$LBV\^d1Y]B2)o5j$cp`kNaKT4[3=DkDG2k2_blT7#YFT/`ITk2rgE^ZO*8?_<"Uk1FXFI)4cb -T8b&Fk2o_&J`_OGW9+ -#$LBV\^c7g\uZ9%XK5BcX?NT -T<,,DBn<@:XJi3)]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1K]%RNcg=g;Sg.^5S:"`5>g'UO-Zpf\&@tiXj9`3TOEOFNS?HCidOP35(KaKkZ[bBG? -b1bRCKn7s/g8N^0ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1Y]&jAsk2pX&k"t4&;<:XRjpFrI^.F -#$LBV\^c7g\uZc3XK#!ZX? -#$LBV\D!1K]%S#qg=KcGg.^5S:"`UogfPmcqOUfg1,~> -#$LBV\^d1Y]&jl,k2U'nk"t4&;<;':k2&eo_H3Y7UrVW[;#KGlGJE;&A(0S3R-%PCWMu_D\)u[Q -e`Q!jr8n%2gk"U=k-!hNli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7g\uZf[@U:_\MP,%^bT(i_<.M45u4X@>LWVc7,7?*%CB ->T[mcX??E^!@(TqXF[IUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1K]%S'OI!72lV(8pe/=Y1)HuC=1g7!86FK3$$.tIWQ(m%!qXi3/Ug0%>-e7sAYG1q1g -FXW4&g._Fu!A&& -#$LBV\^d1Y]&jobJpf>,Xt@B//u7HFJorHHk+[ -#$LBV\^c7g\uZgJL5hU]Q\M')L6J^0L6msgXK7>7OK>.1L5>i1(lj?*R\Y\"XGDY5XIY*#Uo^DI -O-Yp0V*k3_!cKQVJZOF(Y,hi=map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1K]%S(PWj9IJ^T,>uWk7!+WkYsXg=ig3\(]$*WiZ3R(pp?lg8q@/g;g4nd+ZmI -[D'-(d8g/!!f](SJ_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Y]&jph[(OVsb-]UK[)M1V[)p),k2s7^_<0@V['otr(r!AacJ,_Bk-_SYk0gWDgudG" -^WF=Sh-0d>!gPaiJ`_OGY3#rSs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gKrb<9Nr?$[K:7@mJZPuT#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KL"ZR9[/J\ZVo+)>J_I6[#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YL#rEO^A[0pYg.g^J`a)s#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gpoFI9aK,A^aK,A^JZOF(VlU*6map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1Kpt>_0aP$WUaP$WUJ_G\/VqM@7s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YpuVRDaQ -#$LBV\^c7gq5aU@EW3$?QXB`n"BIN/4!i[`!)!-i!*&Qk"C3<94F?\$!`UY5poFL8LA7hNE#+#+ -JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1Kq:Yk9O8di6^j5q5"Dp[^8h\uR!+,QV!,M2["ElFl9Ut_.!bsU(pt>b/Wqb9KNZg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Yq;q^MQi?+Jb(0KR"ER6k:,1Pd!+buh!-.Vm"FMq#:o*^F!cU-;puVUC[.rbaQ6(V> -J``lm#4) -#$LBV\^c7gq5aU8H2alGPZ7X`/4lI"V`_%nEhZ3oXI2^SK<0!+CJ0bjXFNr:?EC5L91u:dXJJQj -J!t^&94Rt&!DH8fX:Lss974-JbZ;I -HTZk\JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1Kq:Yk/RJtn@]P@H"/6p=rdnJJJOj.7Lg;@9)VqR,cLL7OEg7hq]GM:c5?XMI>ggg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Yq;q^BUAj9U`c1q>/7I(1hb`HmRFu,pk07FIYi_11O(?)hk,W$'IHK[[A7Xc`k1sQh -Wm.=aA;'sE!G,sDjq$$RA>eR\KpZD\k1s2&k"u'>#BaS3k%VA:CAm9'GJE:^A;B;]A`i-4XSCoY -V,2a*J``lm#4) -#$LBV\^c7gq5aU+LAn7TRVVo(/>K73VkU8[1KL&SXC.Ti8ti!rI@W[*Ro#ZH=0.O,SXi3NRoQ#B -+H*$SSY?%a0V(/(XI3.\SSN_N*d4)?X//1bR89o[>`bLWRVjLDR9#u^XBCUcWC)oOD.p#PH&VL! -!'Gh6JZPcN#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1Kq:YjsWrC]Q`/+EH/C3!Je'?[`6#FYgg3Uf[?Hg\8T>sma`+@!0DVDUca2_<9`GET* -.C%5ga3=P:0ZQZ:g;7aJa,$G9-C2\Ng!NdQ_.D?IFgoD.`/?Ck_JRKMg2XOSelBB:MM0^;R^2\A -!).stJ_I$U#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Yq;q^1[/T1gcB%te/DK8fhq@/97 -#$LBV\^c7gq5aU%NVBLY6)UfcU+;`4X<*`r6QDc#4KPVHXJK#d6_(6ZDF6cPXDE9cXGrjR4Su2_ -4KPVoL&S.u4KLZHX?EV\)FIGoXH"Mm6S`A#E3--SJ?5hTO0#F;@]WLno;hpSJZOF(VlU*6map!E -e+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KqUu#(FL(Yp##j")g?fbg=f9Sd32M)a4dmOfPmcqOUfg1,~> -#$LBV\^d1YqW7k@HG'"7#$9^Ek1McAroP9F>$<6'k"t4&;!-PU>$B>9k*&tP:?IY8k2s>,k"ts; -"An7CKX1U>,>dN!k2oP&h'6*BdcS7s>$=7OTU+a&MlZ"&GJE;&Z\.CYa7JEn:k@b[k,7>Gli5Yg -LXYejeHa-In)qLUg-U;~> -#$LBV\^c7gq5aU8H2"BD6)UfcU.5*_+[;fj0;,C/XK4OcVMq@J5HKNKV1Uk2Iqc!cPbP6AXIkjY -X<]p0XEe`cXH?Sc4KPVIX//(XG]BgO<1]qQQ$?'*Wa1UcXBCV`X9)4B>kkB$OG!M5!'L1\!J6Gb -XF[IUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1Kq:Yk/RJ5D=;q'ISbujqu+]-S&43Q>Og=f6Se$@BK:thjtdAKXkTnM.R]?T&'g<%,/ -g*BAGg7!uSg:2%S9\S2pg!N[EQ]Kk9C<4f;]U*-^f64LSg2XP"g&blQFnjYk[\s)X!)3=E!N!;W -g4@t\g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1Yq;q^BUA*dR=5W0&fj4R=+][=A5M"snk2oM&hRhRujoT=kHhc_(^p*e"!)WUU!Ns:j -k(2Ztjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gq5aU8H2+HG6l.n=XB?E2riAn74@h,,Aeg)R'l'-V4?R_eSl.[V(5T&?4?QT:XDU-l -PcUrL'g.MXGW\)iUhpirM\T]+(QPS@ENG-e4A(l`8N]1mXK5AC13]h$S1CK3X8u-Gri?2d'g.HS -X8sPGJZOF(Y,hi=map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1Kq:Yk/RJ>J@u>te%qg=g9i5F:*X`])?@g&Ye@rn7HN)bdO9 -g&Wa@J_G\/Y1a*>s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1Yq;q^BUA3jU>9?VIk'%tUroR"B:glS1L`Eh+*0/8i:f*\Edqqp0*k(40:f)/`k*/\O -`ocD]*)O?2TMSI,gQEPV\K- -#$LBV\^c7gq5aUMA$)g5G]'TD5Jg?9s.DJZPuT#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1Kq:YkJI]_<)Q]Cdn!MG2Bg&eQ/anXQjGZ'+HJ_I6[#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1Yq;q^_KrsJ -#$LBV\^c7gpoFIQXfMRY.V&7T")KSZ*nb^iAa+NjD_!p&E -J,~> -#$LBV\D!1Kpt>_OXkEh?21G>S",T&pebRo"cF`i)!PH[.g4@t[g'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YpuVReXl][N3/%(h"->](iVDU:fuEdK!QWiDk(2Zsjp(/Og!tl,nb^iAa+NjD_!p&E -J,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZSIE!L[BlX]VQ?M^Vl#uZXK8%aS>E`:_S,fR? -XF[J=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_K_L!Q09[g*G1fc.U+Xg=XEbd+Zgcdb;sceC)@_g=j]h`mNMoa2ZiW`mrK8`W4VA -g4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`cRd!R65ljs8m4f]CN0k2aq;gud> -#$LBV\^c7gJZSLF!g$,Hq5c$,*''uO5-/]s9NIj2)MP81)NKSB8Z]"!,sd*`X?&);Af[(e)GEgM -Q@Z,gXQuql]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_KbM!k2TAq:[:,,=pEK:>1\8?u=,R+fX1S+ge:P?/""U/lSS"g.=K^JL.n(+^e\1 -^4G!hg?[Gsir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`cUe!l8JUq;s-B,u!;_;Wa6UATQLr,I6Hq,JCKj@clg#0itL>k"S/'M'p6E,@tF? -aFWK)k3M.6li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gKrbr54?S"mWbjj\6EEOd69L^Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KL"[3/9MD&3f8<6q<8(?'<(t3`ahM$Sg)3_:UPPM)PhOj.A(k&1g;dRSg1GN7g=g;S -rn7aJNS;c[g=f6Sa*>FOg4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YL#s&C:f+%Oj,m/7=lrnE=A[<*eB)(mjr%-QXH9 -#$LBV\^c7gKrbr.XK4OcRSKrcEiamJVQ;n]XJ&/ZX9LnJ=_iCqK`8%`4KO*HX?NYcN*M*HXK5?b -ri?ENDlfd&XK4-Z/V1!SXQcej]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KL"[3&g=f6S`+%HSOkQ]sdb7CKg<fPmcqOUfg1,~> -#$LBV\^d1YL#s&:k2oM&c=lA&RHC_>hW@Ysk1 -#$LBV\^c7gKrbr04?ORaWG4OXL9-#Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KL"[3(9M?\beqQjlWnOA#g=f6Sg< -g8pI*NS;c[g=f')?cLWIg4@uDg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YL#s&<:f&J#if-c2[-"TIk2oM&k1 -#$LBV\^c7gKrbqMXG\:(UO'#C4KO0GXK4OcXJ&/ZX=QT8VZ;+%?EC5WC94L`Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KL"[26g9<*]cC(@PCUMmF;qfs?BA.+5 -g7j7gNS;c[g=f6Sg1\4S]P#cGg4@uHg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YL#s%Fk.3/,fq[]l;!,!:k2oM&k1 -#$LBV\^c7gKrbu74C(KlShN8hNN>K'Uh267K/tYVqQ('`/n(etLTHV#4DLkpX<(BCXBmPKHoWoD -0f_?SGG\V-5bG-)/j)6NS#g3 -#$LBV\D!1KL"[619QjZqaZW\\SOl"= -5"J@9QdTtL;9@O^3_W42`7fb`dt-5(g@*`"ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YL#s)F:jc]2e3Hi,]]NBcgk\,$Y>.;iqW80t5(VgX[H>>&:laQ7jrSR*k'fL!VG0?Q -5tk*HTA=ij -#$LBV\^c7gJZQSe!@a(\XF[J@X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_Iil!Ah08g4@uGg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`a]/!B.`Ek(2[_jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZS=A!1WmK!*n-W!2G+HJZS7?#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_KSH!6"e/!-QoI!7-5MJ_KMF#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`cF`!71R>!.3>[!8<"dJ`c@^#4) -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gKWG6U@>sfZ!/^TS!E#+5Gl!/^ZU -!etljpoFIPqlBc_o;hqBrcS:>o;i"?G,b8 -#$LBV\D!1KK\?L\Ha31r!3Z4Q!GB@Cg&SMZQ2neng&eFC`VnKkG.$\j!`2Rprn7G#El7n1!3Z:S -!ihR.pt>_Nqq;$Io@a2>rg!Q5o@a89QIkoc!OgC,g="[Zir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YK]W?tK"LX:!4Vjf!H$0TjoE-pScI"+joW#`d/E)-I)#%1!`W"-roO:;Gg? -#$LBV\^c7gKWG3S55qY_X8T.!Ws#N)40,F]X9,G\VZ*[rWrT7!Wsl(g-us?'X/rD'X/rE$X8]1% -L.caiX9,G`UA_1nX8]4"X8&ar4T)8]PZ7U_!'L4]!eNdjrN-"!"K\XcX/l6$!NUqQXT#7#XSo4" -X9<9!EcPFaXT,@$XSo4!X93YuUoaQr#-=l+XK5 -#$LBV\D!1KK\?IY:]B&Lg"=sUgAfh)f`Fh!f`'S+fW`g'gAfeAg"P-3g">!3YqhE&A(]Mhg">$4 -f\+p0rn7FR?C1ZF!nk!+rRq;)g&B_)f_F/#9`3TF]5.B!!)3@F!i8nmrRqM/g"G*49A%qsg&]j) -rS%;(!SQ3+fa$0`g4r7]OELQVs4IA*"5);Zf`'S6QT!3f\"p3BYK&Odb4obs5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1YK]WtCC#nF=jlGRd -jQ5I`roO9gA=rk`!p%,KroO:DjQ6C'roEk:!)WUU!QB'WjoA6VjoV\hXo7D^j9=Z-j\Ot!roO7B -Z2Nhbj8nB)roFCGk2q[uR$`7"k5XNBjoa]+jQ-=&%A,c;k2k[ck2bUck&/7kk0iArli5YgLXYej -eHa-In)qLUg-U;~> -#$LBV\^c7gKWGie5-1i_=?SfgXK74D4\BgK'g5.fX<:7XR]NTE5!;`3IN)BPXH6PcX? -#$LBV\D!1KK\@*k:YOONE)'/jg=iZ,:0j'\)bs] -#$LBV\^d1YK]Ws.;s*6!G#D5+k2s*R;IZ-!*E$AGjre=`cK=8p;c7DWW$HL`FP>kRk2oS&k/V"1 -O60eC>>h6qjoLg@roO9&/&)#F$&VVmb3#^%;D,BQjoA6UjoNG@rT4)VrT416?;UX`%?sb"4kGN2 -;MjPuel"@(jr97W;LISU3+PpIk.u3&k"t4&Yu=W.g+R5>?,$=#$sVKKZQ5"X/lUopDTICkdcLc" -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gKWGbpL9.JSN2*./XH-VcXB'PH4Su3*:7A8@@&pAs:TQI:XAtIc3hqC=X/JXUUNC=5 -5,G>sI&sDhGQ"TQ>)o\cB6^288?>+PUQM8GX8kB\X8uLarN$!WrN$E1Km%44E-SIW32*E9qlDG5 -XK6/cXK7@cV_4RB4KOWCUM>=\Lg$OH=c6a"XJ8dcXK4gcXK4^bX'gdcXHB?1XO=0S]'e2#LXYej -eHa-In)qLUg-U;~> -#$LBV\D!1KK\@#cWnQ1UZ-LWeg9u.Tg23/09`*NhA&I$'H.gogAD0G]g2"=S8^=8`g!sEBcBF*n -:XRmQS_DeYQi5VJEjXQSK:'rr>hW-%cF;$ng&OhEg&Z9$rRq7UrRq["W0W1lNgSPD7a0R[qq<\s -g=h:Sg=ifSe2k\)9\QsicA&(IX`D_2E3Xh@gfPmcqOUfg1,~> -#$LBV\^d1YK]Wl!Zf^E-]@tt6k.l?&k&[0W;#BB#B[5bMJE>q -;r-StVWR$-TDdm^GeW>&MP8bC@HLYFg;2G;joA6UjoKb@rT4*krT4N5ZC[' -#$LBV\^c7gKWGQ]5-1i^=@GY0XFk']X8kB[X9;:eXF"g`X:@@o4KPVaPH5rs:QqlW)ZE/4FcT\, -XFOucXDrI_X9DdfXK5&Zr^@!lVaX$RSb]>e4T)8]PZ7I[#EqqP79#j[Oo29\4Su2_4KPVZRf9Au -4JtKHX? -#$LBV\D!1KK\?gc:YOOMDc^"!g8BGug&OhDg&tp'g7+!!g($g19\S39]@nc:A@pRE+oYOMQ*tYc -g7j8Sg5hU!g(&/1g=fn1='&MXe5o^da8+Eh9`3TF]5.5r#J+GI=)5oq\GY%\9`*NH9\S31_uA@" -9[ltog.^50/QZlfPmcqOUfg1,~> -#$LBV\^d1YK]W[&;s*5uF^/05k-0Ujpk5M;!-n[`TAdXC;o>l,Q:pTS\TF2 -k,XF&k*M_=jplXMk2p2R>[1Rsi*9N+deW#*;#KGV`Gt_9#K1=]>]J88_YiNr;#BAX;!-nRcMlr9 -:u>@:k"t3V03iYUk+Xs:>S+`)ZKC:fa6)MggZIYR>1-r4k0<#mli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gKWJ+P5-1iU:Rc/JUnV"WRs^!m7[oNYXK8!_Ml!(HR[\M@V)G*J9SfH%V4Ub\X(HsQ -OE$='Ngj(=XJ'6BU9(Gg;1PIDPZsWH?*%+sRpM#SXCt0'X8kB\X9"Pbq5cbiDk`k(J!X<-Rq&:r -6(<+XXK%aJS#V]VS"!cFS3*XF2PYt%Wg$_aT2h>LGE-,nRu:XNXIVM=VQ?e02jF*=!E`KUXOsTY -]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KK\BAV:YOOBAAsB\d*6OC`La-a=N.e0g=jVNYgLU0_o7t'd7)C5@BIgDdE67JfRfp< -[Z@jE[)Hn#g<>,(c.^mnB;3c,]5ts1G1plR`H\W@g4W]/g&OhEg&\g$q:\#\N6TL]TtbTd`I?4g -;oP-0g=XA5`RhbC`Pm)/`_+b.7F.rDf=Z1Pb%nr7QF)'4`NXX:g;ct$e(WH*7_AHL!H2q.g=Y*` -ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YK]Z4n;s*5iC=&&!gt6ejd&+55?-pHRk2t-!]%tnWc-W,Mh+68ZB"$Dah:6MrjGC"c -^mDhc^HD6)FR`HfhWIHG\!d!iRgk)3XGjoA6UjoNG@q;skoPhFT-Wl]J3d"U9; -=4!VQk2al[d,W,kd*R6Ud8&WU8D:@aj2QB#eT&m]T>#tRd(4bak0d/IhWEmT8]CJe!HiR:k1Jf# -li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gKWG3S55qVnJPCMsJ?5hN9l-o4VG1.kX?9]]9nf[M:/,]/KM?`_9ji0>L9.IoXK6#. -=KIQd>"tcnXDUa,Eic?N9hg) -#$LBV\D!1KK\?IY:]B&XULB^8U>"=8@>NXkdU@%mg,sFb@Aqo6@ptDOVdZ"6@="8KWS6'ag=h-e -E8%a>Ead;Jg5KHKOP8E9@:>h_g:C^$YhFe>@@#X$aZ4>=g&OhEg&\g$qUuV8@:>=K@<:/?@:?+g -g9Y4Jg=jgN@3!AB]jY?Pg5'1JVdZ!<@EI69WS6'8@?9,jRUL@ZuYrq!k^"AJ_Jc1 -#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YK]WUX6/P_Aru0;hI^m/juds%B!UR]BkE[nY\'WXAq?RdZf^D6k2qM4 -G36S`G\5[lk*'ChR-*O_AnJ%)k/CqE]&nuaAtJ/Ie3%pQjoA6UjoNG@qW8IPAnIKdApNO`AnJ=1 -k.G;lk2t=qAfT:^a(Aqnk)X,lY\'VYB%5t_Zf^C`As_Y5ULnoQjp,p=B"@'d^3KG8!lcdTJ`bVI -#4) -#$LBV\^c7gKWG6UD2clD!e3n3k,\WH<2fbs!_YY6ri?1!A"(WC"0,@BTD5JhRp'b*X9!f[JZRJ) -#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KK\?L\MQtR_!hs)>k1TmHC=N49!aeX*rn7G'IDa:_"5%COb4sZl`H$t5g&[joJ_J`0 -#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YK]W?tOh9$'!ifkVk2l`^E8^]W!b>-=roO:>K[.g("64BhebJ8.cZk`MjoMH6J`bSH -#4) -#$LBV\^c7gJZR8#!b>8CTr\?m<)e>AX9*<>>_0!#X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_JN*!e5!;U"TUrCMTR;g&d7LFFi/ig'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`bAB!et]OU#lI5EH.rPjoUffH\(>'jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOp6!f`/+JZPHE#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_H1=s0;X@J_H^L#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ``$U!kc.gJ``Qd#4) -#$LBV\^c7gJZOs7"EIaP=H\6:T<&7.map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>"HdeJDn1GQT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V"IXR_Fi/dmTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7"@/oeCj^f8T<&7.map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>"B!_'M4K4OT@sM/s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V"BFFCOemWkTB6@Ds4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7#\%mu?Aknd?QXj#UT=[2map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H4>#^hi$GHffTGpe0sUY5q3s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``'V#_SV;I_+\(J16'3UZMdHs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOp6#BY$CXK8$:Aq@%YX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_H1=#Et:Og=j[uJUuOMg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ``$U#Fh-ik2t2ELk4]`jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOa1!MFF`XJ2d#]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_H"8!R$OTg7m:*ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_jP!S3Tgk+^uBli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(rN$!JJZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/rRq7EJ_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGrT4*ZJ`a,t#4) -#$LBV\^c7gJZOF(s/Z:&G9-I[-p9&\?87J9;*7OIPVQ=AMD/P<4?BRFFu_?XXK6%gKnV3oU,4hl -3H'JMi2d-omap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/s4RP-Q6l=[-quSOGWrL]B1u^Z]K^;fY<@<`9M*slQ:O;Wg=h0BWMht5bsFoo -8<&2Si7\Cps5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGs5jCET-sEr-rDtbIR1^'Cf"]t`^=k1\Nto,:eg*7SkMRmk2qOeZEZ]RfLAM1 -9U(+ji8t70s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOp6"^kY`XK82r?4!9UEIM5UXJp2%poG?Y13o``VH9+cS5u=WS?/eSXK7F\J?5i4 ->5bN04KPVHXK5fcXGpG8XPg/a]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_H1="aYE`g=jmPGR;QhOJ$j,g=MBZpt?US5FKr!dVlnS`bit.`nK-?g"NfJU>">. -ErF]!9\S2og=gkSg9PdNg>LZhir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``$U"b;&uk2tCsIL4W.Q`5GLk2M_(puWHg6_W@=hK@!'dA+li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOs7'4luW@th![MMb8sR2p%"8?/bm4SYu^H#H*B6CpgKX:J6pR89o:AZVqBGtt6< -N`uC_$9YDk4KPVlFBjlsJZRe2#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_H4>'7m6fI];%3Y-)EO_Bjr>>M%T_9_dg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ``'V'8X*,KsKiT\@?@sbpSO]@,pD3;#'/WU6Jm2=O^gZjpuCNb\H:DM!!fQU1iHH -^3KV=$;fmI;!-nkRsVosJ`bnQ#4) -#$LBV\^c7gJZOp6&m89pI&q'a=+[NT4KPVKWN<0`poF[FDfTe`SkB!`*E/6)?A_pHXJI+B0o)ij ->-+fIX? -#$LBV\D!1KJ_H1=&o__WS_Ag9DPZ"?9\S2rf@nqPpt>q@N0''!a^+o"*GN1?GHZ%ngCTgir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``$U&pJFhV<3e[FKO]f;!-n>io]B"puVdTPaIb=e7/F>*H0!\ICXX:k1hP16F>mh -Gin.Yk"t4&;!-nk>!'NNk25;*li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOs7'2agP7sqD&Oc`\1X?Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_H4>'5"Y]=e49Y\@?Cjg.^5S:Y4=S9_d5pKA,%cb(8:-g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ``'V'5YG"?DZf'_SU?8k"t4&<9!'&;#'/cU6OA2=P%9Bk211'k-fkWk2p:T_A6PA -^3Jf&;!(U:k"t4&J[O%AMrs08eUclDjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOs7'm`YO3^9]$:JY#aGoVR$*GqcO*)DptX9q*HX)^P.MGd5ILAn7q7&6oC*)DMh -*)AjL:JWgK>Ye.$XJ7=1:I/3dX:8oqXQ6Ge]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_H4>'q8cG8l45+A7TQ#RNniB,`:2a,@nRcg'UP>fo]7fY@qHZWW(Tmprlir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``'V'r,MY:/p@BC2.h@U*[._-B[;&-#1QujpFsRjdB65\Sc/!Zi9).>MJ;P-#1&, --#-L?C2-6#HYR;Ck1_srC0,`Djq<]*k2bY/li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOp6s-X@nR]N'JRA-dVRA?^JT<%sZ!3#aq$(@9`X.ZPqSXH#HX9P>uXJM>QV>?Sb -SuefWRAR'crL!e`XAhWbJZRq6#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_H1=s2#8n_qN/J_Tpl[_U-cKb1Zd2!7^l!$,aX6fur+'a25jpg'5aRg=!jTde^fc -aP,(Z_UI5krPA]`g1sgg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ``$Us32&/cK5># -e)oN2bhhLCrQGDuk&F\^J`c%U#4) -#$LBV\^c7gJZOF(q5aR"r($gcfW5++VLbi/X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/q:Yghr*'0Mf\-A'dt-65g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGq;q[&r*TN^f]E4 -#$LBV\^c7gJZOF(q5aRkr1F%jJZQA_#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/q:Yhor6#)nJ_IWf#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGq;q\1r71l0J`aK)#4) -#$LBV\^c7gJZOF(rN$!2JZQ#U#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/rRq7&J_I9\#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGrT4*9J`a,t#4) -#$LBV\^c7gJZOF(s/Z:%?QJpC-ntk)>oAZe83B>'PT<`)MATg#4<^f-Ftt4?XK6%NKnU=VU*D?S -10oI4i2d-omap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/s4RP,GU<.=-pImfFs+0)>YJ80]Hh7GY9&,A9IecMQ9Zp8g=h0#WMgkkbq2(P -5B_V3i7\Cps5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGs5jCDIjb$R-pe*uHm6;E@8L7H`[5Ze\KHR`:b:bkSjP&Kk2qOCZEYL0fIoKd -6[XIIi8t70s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOs7'<45YA?2f&4?PZoDcCC4JZPl.4SYuqGtMJA6DIGNXJ8dc:7A8b4fk`7?YcaE -N`uC_$9YDk4KPVlLoQG?JZRe2#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_H4>'A$#RJ(`Pr9MA'sN,"#>UY=A'9_d+?pG_b#, -ZuZ-!$;B1-9\S3HXOsk&J_K&9#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ``'V'B<"fL?7RG:f'p5P]2OWXQJTQ;#'/jU18`1=P@WBk1Oe&B[5c%;W[&@Iu`[R -^3KV=$;fmI;!-nk[H+uJJ`bnQ#4) -#$LBV\^c7gJZOs7'54DICj`;j4KPVl<]H.kXP^)`]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_H4>'8+ojM4N?og=hh3g+&iN:Y4=S9_dCTgir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``'V'8to5Oeq2:k2r5]jt3Xr<9!'&;#'/WU6KH2=O^gZjpuCNk"t36Q0.(PZZ"@U -^3KV=#uKdH;!-nkE_F3!k25;*li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOs7';[lT-@DnF4?RP^X?`^ -N`rNc>c^&hX?Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_H4>'@BTL0V-pl9MCDtg.^5S:Y4=S9_d -#$LBV\^d1YJ``'V'AZS`18X-6:f*D;k"t4&<9!'&;#'/WU6M42=O^gZjrSH]k)lKQcfW\):c,<: -^3Jf&HKJ&dk"t4&JV%.AhgsqJjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOs7'0rLr5^]Y^XK5EbX?HFo@Ob'UpX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_H4>'2d<4;4ZF5g=gASg.^5S:Y4=S9_di+F5#?'\:NApg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ``'V'34#Pjq^eU -^3Jf&;!(U:k"t4&J[OXQHKO@M_L^k1jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOs7"d2#3=ZEM^4:GVpD]sRg,%7H5+ZtqaX9pj;X,KfTRS5h7R/X0.:Sk.H+ZtH@ -+ZqV14?Pj0D`g.$XJ.1#4>^TMTb29qXQ6Ge]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_H4>"h@B'EC\a^9FQ3pN%1L*.sfc?.SRDLg'U5.fs,#?`*c8C_>`.0A^T52.SQg8 -.SN2c9MA79N(cp)gprlir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``'V"iF59GY@2u:^hm2PUrfG/V2nX/5X7\jpFXAjh#3gcXfp\bPpWFC>@sW/5WWK -/5Seo:f(-RPYb2Ak1DX]:e$3%fGBp+k2bY/li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(afGM7@Y(W@X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/ak?c$I"C#3g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGalWV5K7W1Fjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(q5aQnr&atVfW5+AWI_/2X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/q:Yg\r(I+=f\-ACf7DZ9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGq;qZnr(mCMf]E4Yj+6@Qjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOp6!dl_6rN$$QFQTY*B9Mhe"e(=>Q=ibNX8o$pM?&t6X9,#OR"qaI]'e2#LXYej -eHa-In)qLUg-U;~> -#$LBV\D!1KJ_H1=!hMT,rRq:NPNLR"K=UR,"iIOa^4TYPg&TFtY5l?/g&fF#_2$_Kir@lhL=5Yi -g'>fPmcqOUfg1,~> -#$LBV\^d1YJ``$U!iA8>rT4-cSEAr7MSo#I"jXX+aGOEgjoF*6\,aYBjoX)CbD53ali5YgLXYej -eHa-In)qLUg-U;~> -#$LBV\^c7gJZOp6s)e1?!'KAE!Jd9 -#$LBV\D!1KJ_H1=s-*B7!)2M.!NX<5g'5N5GAKV"9]k%4^FaPOE4GPo!jurNLY;sls5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``$Us-rrK!)Ve>!O^DJjp'1RIW@m>;!-mDaY.shG/En6!l&kcLZSg,s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gJZOp6s)e1?!'L7^)Ke/)+f_W6:HWj&RO=,":7F-nX'Hp0XAp[1riA_64Ae/@Wb4Ft -UT?nZXJ/as02t&PXJfVk4FX@s;aEO*XIW3NAgN_DHot)lX?ibcD0r@_@Q\"pD_bHXBWJ59TLc/c -9.-3H+b#KR#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_H1=s-*B7!)3CG)O3ui.bECoA5&?D__JK>@`:_qflemQg2&RSrn9u.9P6rMfRce< -cIu@GgLI8"n6NB_DVK\>)5b?N]S -?S]TZ.A2aU#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ``$Us-rrK!)W[W)P']$/`Z!@C/CPbc8<4\B[B:4jaAbqk&NArroQhB:i&kfjGHcZ -g?)Yok1F_:5B'Gak2D"j:oWSXDHBZJk0e'BLbZs4VGLmNk#UF&P,.6uKM[0SPsT[kN903aemRY& -A2MYt/?+]m#4) -#$LBV\^c7gJZOp6s)e4@!I\_^X;*k!XFI:M;OOV,G-"Y1NLGrSDlfg&ri?Z8NNB4&Ff^oTXCm*c -NEWDGr2_k)PcR!KV1l"P4KO5tVQ;n\;O=J%9rrYYXIN7d6)U_\R&jbOXGL;c/!$c^BWS;.8?AnT -=0/JcNiWGrmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_H1=s-*E8!M>/Hg(d<8g7d3NBYiDbQ.g"RZGa2?N7u]Zrn7p)ZeF,rPhNl(fn-$R -ZZFhor7X+a]@os4d\tmR9\QIE5Y@G73/g;RgS;Uj?4^tO49g9,\S2mqA6K\G/'>M@f@ -DVEf -#$LBV\^d1YJ``$Us-ruL!N;%XjqU_Tk,RP&DTq72S`Xop][" -#$LBV\^c7gJZOp6s)e4@!N/6_X::%L4CkLj(HafAC91Bori?7%5c[5Jri?H2NNB3TS?/fgX>g,@ -!^s+Pr2_,*XK4OcVdDPK.BJ55XK4Oa5-1iT9rqDO4?PNs5rq/`XK4,T49A0W4T;Di4KPWW8?Anm - -#$LBV\D!1KJ_H1=s-*E8!Rt$Hg't5Z9RkaF*DB.!LY?OLrn7M+;V4ssrn7^#ZeF,@`nK.og.)'8 -!`n#Kr7WAhg=f6Se9FY\1tnpWg=f6Q:>4F?@G5Wb9M@k#;G'Z`g=e^h9EJST9`E`R9\S4D>M@f` -CqOMqNnO]ss5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``$Us-ruL!T7&Yjpegs:kn)h*`,[.Nok>oroO@CroOQ5^#nHgdH9TIk">VL -!a=__r8o5#k2oM&i."R"2s.E!k2oM$;Wd,fBBF>(:f'^:<_cMuk2nr.:]b1i;#]Sb;!-ok@-6V4 -ElN(=NogQ3s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOp6s)e1?!'L7^%:uWB5H1YfNi\jnXAkG_X9+&>@K!8t>E,_cM-m?cAZU>pXK6!7 -E-SIcAZS"qX? -#$LBV\D!1KJ_H1=s-*B7!)3CG%=m0d:Y46@[+`Zag2">!g&e0KHi;YgF0jTSXa/XSJD-ZNg=h)2 -NgSPSJD*]Ng.^5?@+pr)g8TMSg.^1BZ.`r$g9YkSg5=6TeCeuMg6[iRg47m-U"Y-og=j_Srn7I[ -=E)^fg&Y*SPM-6#s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ``$Us-rrK!)W[W%>X*.<8utc^?3t5k&JB=joVbeK)Oh%H+iA&[t!Q&LZYRqk2qH] -QD!C&LZVFqk"t3fA`fUEk-B[&k"t/e]B4'Fk.Q'&k)nG"i8o''joJMmPNE)8s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOp6s)e1?!'L7^%RrQCJZPrR>!,BVRQ -#$LBV\D!1KJ_H1=s-*B7!)3CG%TlCuUtXPUE_K`j_b*RkrRq9DXT$pFCe@?cg=il,9W$OtTM/%i -g=_K[9[&,\WMiCAg6kWq@@(4kc[n`gflTo[@G9GK9MCt^8pT.DI+m;@9ME=W98-'7g=iAs8mMAL -!K3?Eg&e>oXHV?Bir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ``$Us-rrK!)W[W%UDn-Xled-GYhi0c;%01rT4,U[f5D\E_]E$k2s?R:p9$DWDHF/ -k2hn*:tLS!ZE[,^k+Y\=AtNO-g5/P1ja0h%BBJ?s:f+"$:4VKgKBD -#$LBV\^c7gJZOp6!d,u(rN$$DFMFm[Wi)b"NUNqMWB-sPX95N$3i`1\!C;I'X9Q9(f@>Z*nb^iA -a+NjD_!p&EJ,~> -#$LBV\D!1KJ_H1=!gPWorRq:fSf[SDnZgZTLf1OQfg&p$X9%X'r!E5t\g'6R:hV*_4o)%,G -bCT*H^@9fAJ,~> -#$LBV\^d1YJ``$U!hD<,rT4-QSA41hjP\sC^$k(bj%eP-joa`':?2?9!EZUjjp(/Og!tl,nb^iA -a+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(`2j&p5s^Y$X93K/6)FCY".MSBI#Y33]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/`7b-ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OG`9%0-<`[**jo^uO -#$LBV\^c7gJZOF(n>lVci2csZVXCMdWM"gDo;i/-map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/nCdlhi7\4addGfif#iQto@aE.s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGnE'`*i8t($hX9M,iRWSBoB$8Cs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(nZ2bU<;rs"UPA`K");A1PO5FPPZ..S#+f@JJr:SGk,\YuA7T -#$LBV\D!1KJ_G\/n_+#UC]<#gc`6rt",DB;]'\2P]P@#k#0D@ZV6D/nk1TojIt*%@g&flULA0C% -TfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGn`BkkEW5)$g9^b?"-/,S`9l[fa)LV3#1SBtY.>n:k2lc(L5(NUjoXOsNVDQ8 -Vm#4eli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(nZ2b3G5eQDQVma`)Ie)I/T@emUmRjWXIQ&aR&ZgHV59QPXJ:u=rN&\]R&-X\ -X-f?WXJ/gMEuCW:TpVIRXK%YTU9(&ZTU;RWXJM;WSY<-dS!^4W?rVf1>-+g*R%(1UR&-1AXK8IU -0s%IOR%gOHSZJnTYH.r>map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/n_+#*QN#S=^M!Q")LS*R3KDhId)!r[g;V@e_:ZrIdF#eRg<[@:rRsr__9pZa -ftkS[gBFSEn]7!_8Y-Y_9p*?g=k2W -52+`9_9UTIa4f6@YM'3?s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGn`Bk>T)RjQb&..?)M=lk4I,'kgrn=3k0Vf>bN.6th;-9*k1[berT6eubMD": -jibs3k1Op_RNg<`f?;_,k2XY.g#gr8f#uk2k1n/2db*^EccbA2JT7rsGin/KbL#D0bMC@jk2ta0 -6K[F`bLtgsdcT[gYN?&Ts4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(nZ2b3G5eQDQVma`)GH[&OGp9?=&;ndXAW54:iLLrN/S`uXFir?riA;4;,BJt -XE.38J?2h6XK6TA5upf]Q)nk":fa68+&u->WiB/t -#$LBV\D!1KJ_G\/n_+#*QN#S=^M!Q")IUS=\$=ZfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGn`Bk>T)RjQb&..?)J.=Y_7SjhF_c$Dk&#?sCR1G9]XoJ[k-/*0roQDDChm"; -k*g(%X6+Q@k2r8k -#$LBV\^c7gJZOF(nZ2aeRJs8gW13df'q.KPP,rMIXH\g.8Wp/3T<(8U:me>V1p!!7N0%FgHmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/n_+"S_Z&6ie\qI@'uO$FCsLaET!tOsg9`91g:u?DcH]Pkg(Cu4g=iiVf@ktL -Rrc'F@CC*`rRru(\_;q1g:Xo(>e&KSakBSAB#*-B6JB.YZ+#%BRru2[^tOis\$0&P@B/&,=kVN_ -9`E`N?-1Q+b1bRaYM'3?s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGn`Bjdc2Qi+iQqMc(!]uZEnTShVnoN?k.W=Rk/uglg"B[1jq5XQk2s=*j5u>t -UNs\hB#&Q*rT5h8_rd,Xk/P6R@Dh4seE0ciCWkki7cqg$]>9#dUO0h$bN>.D_7F!tB!g^R?KL>3 -;#]S^@as7Ke`Q#:YN?&Ts4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(nZ2b3G583DH_d`fE3)%u -#$LBV\D!1KJ_G\/n_+#*QMK5=SC#uWNnR#&DZbFAZuZ-!".,(.RJtnD]P?0SWI=a!!K9eQDZ[jq -\,G"m;UjEXS(`U8D`G8\9\S2seP,tr"&.FY3fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGn`Bk>T)%LQUtb%*Q0(a=FT[WL.)Z=G37q@>5iXNen3:kk#1:&k"u'>"2B&f -JZIo;li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(nZ2b3G583L9M1.VI&rZH\XJTEYM/e9F>)A)J -Q(V69M-QK*OK2GnXA=\$*da;/SY@p'R95;[+fqVTIYi5s@oo_!=e_WnM2>]39M((]FKDO"0SuU, -W+J#_poFKV?ad$?]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/n_+#*QMK5E?s]sjS_Cl"XfZ^!QWprug/ZL"a>H+)E2ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGn`Bk>T)%LYARi30VWQ$G\$p\GT4#M7k#L2>>MSB'd@OLVk21co\!OGTGdk/= -a4>FC[sQCh_<#cmk%_B(.&>*Qe(I.,c$$RT/`u#LW4/@tKluM$GM1Vm\$pt:An&6;S*&e@5e#P2 -i.t"XpuVTNJ@=SEli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(nZ2b3G583AJWX;_ri??b?XK;(CgV/[X9!Tmri?3Z?XI[LX,XJu2+"IlKo -HYrPZ!eVMH[]B\Emap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/n_+#*QMK5:UUYQ7rn7UaG^.3]M0P'Zg&[Y3rn7IXG^,,Fg*M8oQeL0DG^-%< -g;nM`Z+kONfQ_l!d!1>FMkt[(^3H%![WnK>rn8-CG`^X.GhLfY^Y6tXGcKJ+XE^#ag=H7J"N9$J -S;R*q!i@9A[b:rFs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGn`Bk>T)%LNXMTIYroOI"It,i-Oai\qjoM3OroOe4TB>:oIt+T_ -k0ng0]?5VrjF;mGgOG6iPHKDIaa^#H^ji@\roOuVJ!fAPJ*#h-b3%E-J$e?M[XXn2k2QAi"OH5m -UltN8!j -#$LBV\^c7gJZOF(nZ2bg?Fd-?X+>h4L@;2GUH*IdpoFOR5'cq)!Ha%'X9Q9(f@>Z*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1KJ_G\/n_+#mGIcE1fqbEnWpeXDcUjA>pt>eP:RV"3!L'Iig'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1YJ`_OGn`Bl/IC\JCjfPY>[.!,Zg.e*`puVXe;kj'L!LpC&jp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7gJZOF(VlU!#B4lkbX95&,B9;ni!cr!sWiQE9map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/VqM7*JqBogg&oEJK"(O/!g8/#WnI[:s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGVre*BM2AJ)joa(hM8AuL!h+t:WoaNOs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(g8k@=HC"N2!LfRgX8n1VX9,)AVlZs(]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g=cV=R_JaS!Q<$fg&SATg&fKee?%@.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg?&ISUWNJs!RB-&joE!jjoX21i2l&Fli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(g8k?R@$1Dh!Df-7X9!s5jK&>Dr2]sl0V,;H#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/g=cUAHFWt.!nh,%f%L/%ZfKg?9`3TGaZ[YFg'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YJ`_OGg?&HSJAV -#$LBV\^c7gJZOF(g8koXIF72KSZRIQu\R7V#.4pWcE7]X9>8Z*nb^iAa+NjD_!p&E -J,~> -#$LBV\D!1KJ_G\/g=cR@^AZb'fhL2SUTpK!S[[>,QBBhRg8:"JOiuIKOeVj/#f;_)WnPm`OgY&> -"P?plOidUV&"A^0g;T3-W3"O3^lcEpd/2Muf9)?tg'#]`TO5^?g'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YJ`_OGg?&ERaSk6=j\b1&XLkIGV8DBWT:"[$k-(/qR+CDrR&^/J#gJaEZf^,3R(rL[ -"QWs.R+2,t&#>TLk0TLWZ*rSXbF$J?g\^+7j-ZD:jojA)WFaJYjp(/Og!tl,nb^iAa+NjD_!p&E -J,~> -#$LBV\^c7gJZOF(g8kEHY]hJ7Wml25,/0G%Z0'W)7_H*3*7eG$11/ -X;@p0cO;EJ7DuD6o@1i3gBNC$EA8$XK8C(G%hkcXK2W;map!Ee+*=c#KMJckJ6T@ -6@]~> -#$LBV\D!1KJ_G\/g=cR@^AZb4e5=rRR3?PrDKFHaOHk+CU4AM16d1dPQ%PR[eRt.o,M.%&Q#XS9 -g)&CJCR*&rfoM&VFk=VkUOINl<^T\U8\=lR$J1P(g=k.tQ%gI%XP*m -#$LBV\^d1YJ`_OGg?&ERaSk6Ji)]"&Td+e0FF*#-R%AffX,!9N7b=/mSr0?+iGG0;-0'?DSp/?S -jqm)gELt_Cjd2.%HfNL6XG)27>=VXf9ud(m$KI^@k2tZISrFuBXQB`Qs4PqXe+*=c#KMJckJ6T@ -6@]~> -#$LBV\^c7gJZOF(g8k -#$LBV\D!1KJ_G\/g=cR@^AZb0Ju%,S`aHGoZ?*!>LPK,p:>4F?@G9G"LM2.j;UjFSJq9ctg&OhC -g&[&$rn7Xf7#-P0J_EnLrn7O)W-#=\]D:.d9\S3AZeF,?`iRkuir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg?&ERaSk6FM65q&d:L@;]R$k]NfIS7;Wd,fBBJ?HNbsL46joA6S -joLUAroOL'8 -#$LBV\^c7gJZOF(g8k -#$LBV\D!1KJ_G\/g=cR@^AZb4fhL2S`aHGoZ?*-NStDIc;q9U4@G6[$T5T24>fk^Rc\S1HgfPmcqOU -fg1,~> -#$LBV\^d1YJ`_OGg?&ERaSk6Jj\b1&d:L@;]R%"mVPp62=Q/D\BBGGFW-*gV@FaN&g5i/ok1s2: -jpdHMk1\t:<2HOg`TC+ZroOB -#$LBV\^c7gJZOF(g8k=0,qB@of/s -X;6Rr@p5t8H=(/fKU3rmQ)plDp+!cX?8VLX9Q9(f@>Z*nb^iAa+NjD -_!p&EJ,~> -#$LBV\D!1KJ_G\/g=cR@^AZb4fhL2SM)VCsUI*:iH[Tt>X`Str@G75rI7m/\g1u+bDVBSgI;R%$ -g(p`2I<+&qRs9@(VnXg1]\:h*CNO]7J,@q0f6o2u`S,TcFt&=&g.Y2Eg'6R:hV*_4o)%,GbCT*H -^@9fAJ,~> -#$LBV\^d1YJ`_OGg?&ERaSk6Jj\b1&OZKd5X@Cp4JV8"k&?!,FQS=2KQGT< -jqb@OKR)_BUORrEYf\YOa6)8QEI3(PLAU*Cie/q;d,oh2I4LHBk"nmYjp(/Og!tl,nb^iAa+NjD -_!p&EJ,~> -#$LBV\^c7gJZOF(g8k?RKVSOJ-*'D1XH/(,Kq=!rXGDRmXK7M;L01OYMhRaVWN;bHKqYTHKnYoh -X9+K;U].>*MhR4nTnS2nXJpo2RZ!PmqlBdure1]SXJLW1QB/,#)j7G,#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1KJ_G\/g=cUAVpG@r-.u;Hg9mp%WQD-hg9%?ag=j$8WGpSFZ)PjEf%S9GWQa)HWN!`/ -g&e^^cMlN.Yc5%abc.Sag=E7,_m.%aqq;&&ri$7Ngg4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1YJ`_OGg?&HSYhK*=-08:dk.e4OZIH2riumbk2!>VahQuB,fHqL#4) -#$LBV\^c7gJZOF(g8k@';2+tM!K<05X94Mf>?pTt!.auO!0ZZL!1Wmj!-e+;!K`8DX9Q9(f@>Z* -nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/g=cV"AuP[^!O9-+g&na)FER$*!2BC5!4hFL!6+kX!1*<3!OoA -#$LBV\^d1YJ`_OGg?&I6CpEs$!P?2?jo`AEH@5/C!3?$D!5n-b!7:Xi!2&rH!PuCOjp(/Og!tl, -nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(`2j'7NK'b%X8nafN<#^=X8o-qN<#<=X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/`7b=;ZEhjFg&T(hZ2i/8g&TS!Z2h\6g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OG`9%0R]Y*%fjoEa*]E$UMjoF68]E$*Jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(]W;3`<)f`GXR`Fs]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/]\3IZC221Jg@Er%ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OG]]K -#$LBV\^c7gJZOF(]rV?u>*P8OqlBjl4>h\kqlC"5map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/^"NUuF1f0 -#$LBV\^d1YJ`_OG^#fI6H,dkbqrRt2:e-*!qrS+Ks4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(^8qWh4t00YXK52kDuHa;4T;D^Q2XG\WiW:79U1F8#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1KJ_G\/^=imb:,H@Vg=g(FNW%Q29`E`G^&DCCf@nr1@(hBM#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1YJ`_OG^?,a";Dr-kk2pAiPl9_E;#]SWa8TZSj6#K]B#oej#4) -#$LBV\^c7gJZOF(^8q[;IoMr7XCdljBn-,`!'L7^$:C>R -#$LBV\D!1KJ_G\/^=iq@Tk_Tpg4@,\Kq\M"!)3CG$<5$bCtI?lUW.>eM:r0ns5)Iaddm:h#Kq\d -lFuc@6%A~> -#$LBV\^d1YJ`_OG^?,dWWGp5?k(q:/N2lm>!)W[W$ -#$LBV\^c7gJZOF(]rV6n>lC`+7mnkSri?)^ri?H>6pud2W#7uk4\pp9#.j6SeVDWDqpbqlKCA!= -nCg3Z~> -#$LBV\D!1KJ_G\/^"NLlFoC"r>$!YPrn7?Grn7^2=')EUeK@pp9k9+7#3,[>g4n&Hqq;:uJaVg; -nC^*X~> -#$LBV\^d1YJ`_OG^#f@-Hi<(/?X#ReroO2WroOQE>?eGri?DK1;/1sM#4) -#$LBV\^c7gJZOF(]rV6n>lLf-7\?GGHiC)H4T;DlLnph5WMrLTUn3OHXFQRqX9Q9(f@>Z*nb^iA -a+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/^"NLlFoL(t=j##nS,V+A9`E`UXj> -#$LBV\^d1YJ`_OG^#f@-HiE.1?.IY9V#KKV;#]Se[bKP=iSn@fgXEdsk,ZO^jp(/Og!tl,nb^iA -a+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(^8rH"0d0W"XG/o&7l%0=4V^,LXqmap!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/^=j]p5:LL(g8[qD>!Ufb9cHgFg+#fkFkGE]?VOM(g=dZoNS4Trs5)Iaddm:h -#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OG^?-Q/67d6@k-Iua?:3l+;&iHZjt0G-I,sG2A5QL@k2mk:NTLH2s4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(]r_46riH.#"0AQ)XT#:#XT#:!XT#:#X8u?nN3!5pmap!Ee+*=c#KMJckJ6T@ -6@]~> -#$LBV\D!1KJ_G\/^=rP=rn@D*"5;G^gA]e*gA]e(gA]e*g&Z%qN7nKqs5)Iaddm:h#Kq\dlFuc@ -6%A~> -#$LBV\^d1YJ`_OG^?5CUroX7B"6S_-k5OKBk5OK@k5OKBjoTU5jc/C,li5YgLXYejeHa-In)qLU -g-U;~> -#$LBV\^c7gJZOF(TWA0VUl;AZ]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/T\9FVd#?Z_ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGT]Q9lgl1A"li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(]rV:"2-0^X!i)ilmAp>bWr9"#UTC6iX9)E[Q2[ic?`*h(!iS4DUoXd3map!E -e+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/^"NP#6Z)hV!m]NFmFhTgfDXD)cJ$SCg&c(X]`-UcH.2cH!nBt;UtQ%4s5)Ia -ddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OG^#fC97s"[l!nl_imH+H)j8J*Ag?.)fjoTQna8Y3%J):1e!oZsPUuhmIs4PqX -e+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(]rV6n>lC`*4K1R4X8u=brN$&aW]^6]!F1T_X9!lbr2]l\UoXd3map!Ee+*=c -#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/^"NLlFoC"q9\*&-g&Z$$rRq -#$LBV\^d1YJ`_OG^#f@-Hi<(.:uYIAjoKM@rT4/[j&#^:!IMHXjoMQ@r8muUUuhmIs4PqXe+*=c -#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(]rV6n>lC`G4K1QHXArbi4H-@o4?RbfX*$NeK<1L_1H_>3X?NXHrN$$)N;fmZ -JS4n^!'I'Y#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/^"NLlFoC#99\*%og1u,C9Xg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG^#f@-Hi<(K:uYI:k&H'e:qYqo:f*\Djd].DYNF.Z6r;Ltk#:;:rT4--]Dgpn -XGZr -#$LBV\^c7gJZOF(]rV6n>lC`@EN4)]XI:SHXDrc(XK6JcF`XXcBRm0aPPqQaF/s -#$LBV\D!1KJ_G\/^"NLlFoC#2OP#]Lg;>aog5r%^g=h^SP`jbSKVI1:])C=aOk>cog&Z<$rn7Fe -DUn^>!)03B#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG^#f@-Hi<(DQfORsk0>o;k*N-,k2r,&S=8U&MlYu\`;Sg"RH0_5joKh@roO:' -FQ!,[!)TKR#4) -#$LBV\^c7gJZOF(]rV6n>kkB)RR!aOXA>8`XT(E^X9=qeXAtJXX8uRbri?0W@B0:-!'I'Y#.j6S -eVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/^"NLlFnjYp_c"q:g18)"gAakGg'#9'g2+@og&Z<$rn7FUHeA;N!)03B#3,[> -g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG^#f@-Hhc_-c;rfak%W*>k5S9WjoinCk&SE6joKh@roO9jK&lmm!)TKR#4) -#$LBV\^c7gJZOF(]rV6n>kkB$RSNj`"+P$dXSm8@X9N?fXAtIcEql^:>`AZ`!J+n]X8kB]X9!c^ -WiQE9map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/^"NLlFnjYk_di]""JLP'g62H!s4R[1U=sFpg5u*`!HbXHg&[t$r7V-ErRq:E -JZ@E.ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OG^#f@-Hhc_(c=m4>&?:]Ok*hg0S*&jlWoe??k*Yr+!IMHXjoMQ@r8muUrT4-Z -LoTSAli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(]rV6n>kkB% -#$LBV\D!1KJ_G\/^"NLlFnjYlCHQ&)g(1#R9U"/_P>"ZIg=jbV9Y'rP!HbXHg&[t$r7V-Ern7G% -;GF1F#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG^#f@-Hhc_)EBn19jq"Uk:n6Y/Rnuqbk2t9):rE(j!IMHXjoMQ@r8muUroO:= -=&Q'\#4) -#$LBV\^c7gJZOF(]rV9o-t1l3!b!L9ri?-(NrH*]W(S?6X9+G -#$LBV\D!1KJ_G\/^"NOm1OIm1!dc`/rn7Bn[/Sb\emBs,g&eZIc)TJ%ir@lhL=5Yig'>fPmcqOU -fg1,~> -#$LBV\^d1YJ`_OG^#fC.2M0]G!eN;AroO6+^Ad6riFFP>joW:bfrF0=li5YgLXYejeHa-In)qLU -g-U;~> -#$LBV\^c7gJZOF(]rV:7SY4`=!hc*`ri?*orN$($SY#h^!NDopX9Q9(f@>Z*nb^iAa+NjD_!p&E -J,~> -#$LBV\D!1KJ_G\/^"NP=a335k!mAX8rn7@trRq>+a3">7!S>_ug'6R:hV*_4o)%,GbCT*H^@9fA -J,~> -#$LBV\^d1YJ`_OG^#fCUdb!79!nYl[roO46rT41Cda\9Y!TVt7jp(/Og!tl,nb^iAa+NjD_!p&E -J,~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(frP3oHfhC1<13Z*nb^iA -a+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/g"HIgSEAN+C;TPq"gaT4YBX.2g&T%iQiOMcg&TY%QiNnjg'6R:hV*_4o)%,G -bCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGg#`=%V<6n@E6Rn8"hgSQ\:7cGjoE^+TE)^ujoF?=TE)(&jp(/Og!tl,nb^iA -a+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(frP09jfAKAV=UbmO]ud#3iG=+X9Ft=E,]!EorJ=p5?Ml;GIX^Y]'e2#LXYej -eHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g"HF"jk9a?dIZ&r\9![@8_$]#g',8INfJ.kp"BSu:iMGIQFPWQir@lhL=5Yi -g'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg#`92jlQTUh=Kb5_KhG^:#T+7jorpbQBld7p#ZG8 -#$LBV\^c7gJZOF(frP09ri@#I4?OO`XHH(9EibHCN_iE9-S_]#)jRL"*16`,$Xl.n/$,UM4BA5Y -4T;EUA#LkM4DLsm<]iKiX>*4.5)65'83BinS?-Ee9:)_BXK5lcXJ/]W=f8?24?OO`XC6mcN`r&Q -4?S.qKGp(H;ii)#**4&NLH[gIHI&Ys]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g"HF"rn89=9M?V`g:1<[OkRAhZt3[\0g=<),/)]?,JjB5$[YQX2VQSu9Pr)/ -9`Ea>Iap;_9S_?ID+mWlg-/\7:93*[>>/f[`nH,?@)(Dhg=gqRgCRa9[lir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg#`92roP,P:f&D!k/1P&RHDF3^2%?&1dU8A,ff%\--Q;M$\D2i3Tf1A:ik@Q -;#]TNK]+n$:la\kF&5]-k!EEP;RGT)?r1ekdH6BaA]a(2k2q<&k1F]NGMhP9:f&@uk(9u&^3S4G -:f+7UYp77tDnmf@-?LH]Zr9dWUX/',li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(g8kX%MQ(_;t;0>I&7\?K@S^4AA]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g=cRhQN#SQ:XIIig<=*Ed#4(@?!G.a`/g5<^M!Q"&7r]3g3]mS_EZamXO+.d -g._J!9@Z#Cg.^5I[*[/mg7)O(do+M(bM%kmg4ks@]j9;bd)BkFg1mk=X)Qcgd*SlJg3]UAX`qsu -d*PG>g-obu^!(GRAsHZD=j#+(a3WHDir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg?&F'T)Rje<8?9:k1==lgln5i@UI=*cBk0ca_h%>&8TJOk(9u&bsUW9[bSE5 -k"u$=9Ar"]k"t3p^>.L>k+cPMhcJNJf&i0>k)H%ha(".,gsC,nk&@oe[!(S2gt]="k(9\i[slrG -gtY`gk"0OAa4GKuCn5%b?IdiNda.%[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(frP09ri?<_6ptIbS0%Yt"+.+@TDbhm4KL[DX9DFfXK4^crN#uRr^6fiX??H_ -)5og%X?1XEnccVa6qHXK7LcX@teV6jKbP6q;s4X=F3;'ORr#6ptFaXC3tS^map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/g"HF"rn7R]<`XP#`[:[c".\(Nao0op9\N2=g')'(g=fHSrRq68r`0)=g._J! -):_U#o7Oce8T_s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGg#`92roOEs>?c[@d4"uu"/P'geG\M2;!(UQjooPDk2o_&rT4)Gr`]GIk"u$= -)<"TXk"t3mF'Dj8k+e.&hcJ?:k2sL'k%7Nj>6j7_>@+VtjuE?E'S#8X>?cX?k(6*-F6:ni>?ab_ -k"u$=$?j4$b$rl_?X%?jcfPGts4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(frP09ri?T/SXi'JW+(RRMg)-fOJ`#Y!f/CGriB\'8W'CHOBnEJ?EAcmSXj2j -FEO.FA"G`[VDb67=.NtUVJp(ISNEWWL7L_7XHQkZSR/0OU8VRYXF+oVSRS["SXi'JX&s_EXK7:e -SRF=PV`(*EXK#*N;2n/4?(%6uI]TVl5LZ\<]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g"HF"rn7it`l:s2eU4L=Yad)T0[s#d2GhT$I`l<>Y -PEa),IE5%2dRDKoDT7;gdZ/h2a%Od-WlA(Xg:MFG`d#p#cII?Gg7=/A`dHKU`l:s2fPm>,g=i]T -`d9u"dm_:,g=Kr9B!YdUG/D7RT\A+^:t+,&ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg#`92roO]0dEu%XiIeSd\t@qa_;>1R!k(1UroReB@Cb4V_0jYXIcdhldF!O- -S".mRK[W]Sh+?A?FO>t.hNilXdSJYO[*`*$k/DVnd=0qDg#7Unk,+?id=UM#dEu%XjE@?Rk2s1( -d=OdDhau5Sk2U9`CqX;uI*ButWTN?2<7Bt6li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(frP09ri?2t91t?FX9W-+?*'>b98EMJ!iJ\UriAXp91so=XGokGOK>O691thW -XE.$-WbY7iKM-QkHV8lhKi(LDC.j_k@S;/PXK7XZ98\X#ENH6YXK6_@9;ARb91t>IUe=@,ri?u[ -98?<$MG$U+XIi-kH!tf,E(`iAXK83T9%0jG]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/g"HF"rn7Hb?XL5?g';n1G1sZ;?`X1[!n1Mgrn9na?XK_bg9Y-n\(]Q1?XLk- -g6,fMf8!_CVdGhFS6r%-W+TJiL0qIEHs`Obg=j/G?`pV?O4rfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGg#`92roO;tAS&XUjp-EJI-/O^A[VO"!oIS/roQasAS&+.k.P>;_<0m\AS'

-#$LBV\^c7gJZOF(frY4#^T7R4Q'GL@bH(c98Ysn;#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/g"QIr^Y/h9]tJC&bM!$g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGg#i=2^ZG[Pa2`DLbN8lS@bfGp#4) -#$LBV\^c7gJZOF(Q)k(B;cB3SX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/Q.c>?BkbPSg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGQ0&1UDf=!jjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(_5mX(i2csVT'iZ\U5ktL#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/_:en*i7\4[aR7a_c*a;"#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG_<(a@i8t'se*c?!fY4*B#4) -#$LBV\^c7gJZOF(_Q3co@/d5.RtCU?"&r3WP3o=OM-fbS"dMr$Ef_L,XSu&s>4\fqB`:j/T'`TZ -EU'V0]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/_V,$lHN)V!`23Fd");PS\aA)OY'BNk"heQ*OL?_&g&Th*B)luDg&Qg*B)p$? -g&R3!g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OG_WCm,Jc=d4c`[6/")r1i_sQRe\:4#2"itPCR(t?:joFNBD#ehPjoC>=D#i&P -joCb5jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(_Q3cNJc;_ON*Q@`)GZK]-@;hqRtd?4XGWOAL9$JlTq$k(XI4X%rN%o3LRt6A -VhU/3XI!+VHki\ESVEH3XJU`,S#hm;PD5a3XIFs3N1-iLM2&(4@;;*c=KJU#L5u87*f#K)Tra5@ -QBk%BUP=MpXK.)LS;OD-R>dVmS?/eSlDt3$map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/_V,$BV#K'KZ$$'")Ip@l0UpeM`2UW-g98N?WS+h]bf6Wtg;9YqrRs00X2rQ> -e>]_,g:q[CSK$3Ta/Qf,gbhB@' -^V -#$LBV\^d1YJ`_OG_WClUXo@G`]6jP>)JI(01Sj0qca1jXk.&gkZfT*2f[7%Jk00sErT=-e1t1+> -i3U&Xk/qqjV&\Pmd^.'Xk2!AMd,rBc`O".Xk0UHX][#[%\$P/XJrRm_G37rCZbHG$*ji8[fB0_L -aiRlOg9\-7k2ir$dCA>Pbe)32dH9RflK/<:s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(_Q3cNJc;_ON*Q@`)F::&OdE/D@UUm; -XCG^GI&p#2XK6fM3)a9gQE4G&@T9+P)d6]NXJ8a( -#$LBV\D!1KJ_G\/_V,$BV#K'KZ$$'")H,)=\A-bBCj^*?g1c(TI#"(A^p>Phg8e_.rn:M5I![oG -g4"EnS_@Mkg=i.O7qm?h^=mj[Hu%'%,'&'IgPBqV1g5VNS`aINSG^OY1g5UH,:n$+V -@bTO0g2hXhC"M!5P\PK0HnSh_>CbG]9^:=9ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OG_WClUXo@G`]6jP>)HPeY_TM#nEJ&>\k&6#sK8uTZb.TF4k-SiOroR@HK7Z7a -k(SG:VWML;k2rQ&95fH*al\,+K5oVF,^=r^k1am.F==W\Rt63Ok*;Y&ct;G&IY3$Nk*:ON<28U% -BBJ>Qk';T3Dr]nWS8a"MK/$pq@#*n,;!R0Ili5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(_lNp:;4[]f!NDsqX;.Kp4B.rS5B_L"4KO/[S?/Kb9V7_Kri?]g?EC5WC94LY -M.p1CHp3iiS,KEZ4/8ldL9-knIQ*h!32`i?X@/kcV)bW67X]_`G&LK3 -#$LBV\D!1KJ_G\/_qG1?B?1#*!S>d!g(hq09P_c(:R7Z?9\Q?q`S/Vg@*6>srn7seGhUlEL>(=E -Y(^tjSPQt.`VnL]9@)=>WS5=aTLQrT8(?6dg/cSSdRi/q=Iu1!Q&TaUD:%!^IA!*#bBKMMY1;7E -8>)Vig;0GT4Oi)B51%s/\R_gZUk%1QcKa*fir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OG_r_$WCsr=F!TMr7jqZTL:iOqH<1^(];!+r7d,s'AA_#">roOg&IcfdlNTT>l -\;bg6VGkQJd/E)t:YY#aZf]T5WCkS#9&Jc-k$-U&h+d%@?)OZ>Ss=JuF55o-KW1b>epaHp\DcSr -9W>"/k00g(5N([e6/1JU_eQW$XbZ'$g?Rf)li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(_Q3cNJbcAOC8n:OH`T+(C'/[]K4Y"_")N?qKDqqUM-d9bH>`\_!Fo%,C'(/( -S,KE#4KPVnL9+WpC+c'Y4KPVHX??K`"$EZ>4T9($Q#B90`GhS05>6qXB94P -.&a4aHiC)MP#dHHK4X5I#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/_V,$BV"r^KL=Y(9S(^7/L'*aqVL\X!",WRuVuGBRY'A[SRu@7!!Ie\\L'#Y/ -`VnL&9\S3JWS2HKL-*E/9\S2og._M""&.FK9`BbP]o??QD;*]_E;kS+eCob6FL0]>4GJU8g2D_# -1=Y$8SGq4G\S\NoVL[j`#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OG_WClUXnh)`NoK2aUuk2HN<>g8YD<)="-KI8Yl"&S-d;#ZF[aH^7pF6;V.G5dI8hr^#[HG/Ie5E1ZTk&lZC -2;mV[V#KK[_fNA:YD;<'#4) -#$LBV\^c7gJZOF(_Q3cNJbcAW5tuN0MQE=KG'7)k?q,nMXA5cO8ZSqoO^CD-XK#`QG$pBY0m -S>]G2G#=YVMl9$RXB'LZ)L@>kR@,L^SlKr;.BKRbEctuI9ie?d -#$LBV\D!1KJ_G\/_V,$BV"r^S;IYr:YM.!6QBlUGH<@0Gg.p6c>hIca\9LoLg=Ue5Kn_+3,s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OG_WClUXnh)h -#$LBV\^c7gJZOF(_Q3cNJbcALLR<(:ri??eEH.bTG]A?6X9!p1ri?3^EH-O.XZ*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/_V,$CU\WUGXMBpurn7UeOH@fBR#n0Cg&\%Rrn7I^OH?49g*MlCXP2CUOH?p) -g;f;:^ql,6e<$*Pc&eU&UTKWn^lY\P\ra6mrn83TOJgfoPM4a$b1b($OLj/IOH?Krg7j[trn7t+ -OJJtVfoV;ug=i-[^lZ?nebe&%A4+T2g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OG_WClVXSLu\[EFrEroOI&R$cUiTU;n\joMWproObF#a#`0e27roP&hR'>_?SEAtOf&kVPR)S3qR$b8Ck,XlEroOgB -R'!d$jd;FFk2rS/bF$J?iVVa=Bh-eFjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(_5mWI\Z>q3Df8^Fb,bSRn#Q`)map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/_:em<\_728NK%hmb1ZiEn(J!*s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OG_<(`O\`O%PPa$:6b2r\Xn)ai?s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZSXJ"/pKjOg_=q]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/J_KnQ"4Wa,\@1)qir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGJ`cai"5ooJ_m\\3li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(WiQ5hPPqQ`O)OTj!KZ*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/WnIKi])C=`[Z0k3!O9e8g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGWoa?+`;Sg!^m+EP!P?mMjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(WiQ4pSGfMiRPOH8!Fq2_X9Ef#DNlqYXK2W;map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/WnIJ]`r4Tl_a!_G!IhKLg'*g)MnD;nXP*m -#$LBV\^d1YJ`_OGWoa=ndJ`2.c9h*a!JS>]joqA@PK$"5XQB`Qs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(WiQ1_ri?3`@"1<ri@61@!6mtXH-b>XK3sRU._&Y -Q!e!bXE9#4KPcOHXCbk>]rVFLmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/WnIGHrn7I_H(dq2g'rg_d+WtpfpI'"g5gO#rn8L3H'XuRg9l4$g=eK&c!SKE -]m4n9g6/4kW/@\1g4=P#^"N\Ms5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGWoa:XroOuHFjpdB%gZF6@je..Hk*LVIroP?IJ=`Ruk.cGJk2n^GfO`Im -a+/]\k*rH -#$LBV\^c7gJZOF(X/nLV9!#+_=GUW6XJfc[LfpH^=0%E>U9'GJN3'+Q=GUu4X-d%GB7m9J?\h@G -XB::78?@OaAfYAbVdb76>,8m6#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/X4fbY?J=,NE34dCg=:hIX`;X7DV;HacJ#a4ZJ+$SDlo*?fYMR0K;R?rH*(Gn -g2O0r>hZ/#JL#\bdsS!oEmVPS#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGX6)UpA*2puG.*>]k2D2q[WgDXFQL;,g#g+Z]B88*FgdYWjNMhVMQl5>J@9%: -k'"2A@HOm@LaIh$hh/)?Gh]sp#4) -#$LBV\^c7gJZOF(X/lGKE3--'ri?MjXH>&9=@-V`=0$Cbri?H3N3'*SS#i]4X#^/](b)OKX?9.H -XHQag,-7>.PuE]HL,)k54`S3;#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/X4d]ENS<)[rn7cSg:0+]E)_D"DV1):rn7^$ZJ+#@`S0%/fgu*](c9r?g.Ykn -g:D6B/)&$N]kOioW]tHA9om$B#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGX6'PYQ0.4*roOVck/'3'G$0X>FQAj\roOQ7]B86fd,sJZj\5Ys(cUSRk"oX: -k/;Fd0':SmaDS_;ZU8nZ;4##Z#4) -#$LBV\^c7gJZOF(WiQgqXK56cXIh>NQ:QpqLm4u>MamZH.U7q6XBpdcXI-(aI#sG>X? -#$LBV\D!1KJ_G\/WnJ(Zg=g,Sg;u\8^0InNXLm2#YZ^qY.WhuMg39aSg;)EPT!l)$g.^4j&B -#$LBV\^d1YJ`_OGWoapjk2pI&k0ul_a^Mcr[`.BH\R,6s.XSeik'ji&k0)n$VSL!Hk"t39&CKWG -^p5r^dU^F:^3RD*]tgttk2a20_WD'gs4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(WiQgqXK8F':fSTaXFjDI;i@`Y!d4LD.qL4tJ#o_[:f(8pWE2nm@t>VMRjai/ ->YnBAFC?DG-[mP2WJASAl]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/WnJ(Zg=k1tAo&iag8AUrBsHCG"-rl>.tKTWU"\4HAnGu7eo,/4I\S-^`&#Ee -FCo;:PC"jV0q^DITP%kO\(]..UVb^hir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGWoapjk2t]HCiUu#k-/`>Dn>)n".fGR.u62fWoiGpCi"7UicT'RKrcT$cSj25 -HYd[ORt<;q1oNCbWGQHj_<0JPXMX*(li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(WiQY%SZJogQ_9kBXK7nXSc5\kR&0e`/"DrmU9(GoQ^=PMXJD2LVkTNPXIuSp -VO*pHTUhFGQ_g%JXI5EHXK4cgVo#M>]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/WnIngaP,@p^rsaAg=jK\`r=Zm^s`59/&oB?c.^n#^qe@OgfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGWoab#e)ofJbLY(mk2t"5dJi8/bME0[/()P`g#hGSbKJ]'k1e)&i7Z<,k1A\V -hTOEte^DXrbM:;#k0;)uk2ofchnnL[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(WiQ5fOi4=$IDDog]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/WnIKh\A[)$T"s%air@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGWoa?)_SkR:VnhF!li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(JZR.u!JQNiX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/J_JE'!N -#$LBV\^d1YJ`_OGJ`b8?!OBDqjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(PcOpNX?Z*R!IAeVX9)ZSK)VhQ:*5kpX9XGkIVu6gW]o:@#.j6SeVDWDqpbql -KCA!=nCg3Z~> -#$LBV\D!1KJ_G\/PhH18g/.1j!Lf,?g&cFOV#K'L@jf(`g'=U/T8VFWfM:;W#3,[>g4n&Hqq;:u -JaVg;nC^*X~> -#$LBV\^d1YJ`_OGPi`$Ik#Lg2!Mc%PjoTreXo@GaBdq6sjp/2KW0?B+j&=gs#4) -#$LBV\^c7gJZOF(PcOpKX??K`+HAQh@B67f4DV!A9lW:AXK4'&4Gp574-Oe_X/g"u4Jr+Z!GI#^ -X8u1bri?Tb4CbFn=)FBgRB2'PHu/e`!'K,>#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/PhH14g._M"+LFgbI+ctB9ShAg@ZO3Og=eVC9X!0q9=g?ug"D0T9[j!p!J@0G -g&Yg$rn7j_9Rb[KDi2J,_:kf:SV[:!!)28'#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGPi`$Dk"u'>+ML["K&tic:lj_1B9uGik2nlb:q5Z@:W/c!)VP7#4) -#$LBV\^c7gJZOF(PcP^4XCSE6M-d9B(6qauXF4lc.EaA#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/PhHt(g4.i1Y'A[**5-"=g7F,S1mcp'`nHf?rRqa.AWjotLn<>SB><0SK;8D! -'5#&6g8TMSW.*I=5&]/)g:Er`VZ,9MHE?#X#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGPi`g;k(`$\\:3SP*lr0[k,4:&2kT5DdH7*frT4TACRWJ?O/M.&D9:r&Mlcm> -'5YhRk-B[&Z%_>d6?VFFk/=74YQ!YbJ[OCt#4) -#$LBV\^c7gJZOF(O/rOZS#i]MEH_>_#s>:OXK5'cXE\^_X8uaAri?)^ri?9IENH6TJGlPX;4"Ac -5rq+j,-77mUA(_i=c_IA#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/O4jeH`S0%NO-]e!#u'&Hg=foRg6dp!g&ZPPrn7?Grn7OBO4rg4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGO6-XYd,sK&Q_+3=#uKb\k2p7&k+J%=joL'jroO2WroOBVQfdFgXSq8iCs(o& -=A;Ug/`tANf_=M/GJE%t#4) -#$LBV\^c7gJZOF(O/s4?Ff_ZoM-m?cN`rMHXK5'cXE\]cI]TVZL]4@]>)o\c?\tkcBRp&_$W37l -XDN -#$LBV\D!1KJ_G\/O4kJ7PhOibXa&RRZuXkog=foRg6doST\A+HX8^fZEjXQSGcocSK;8D!$YI3. -g5;ESg7[0<@eSLU9`3TFO0[m$#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGO6.=KSEAt6[t!Q&^3Jd:k2p7&k+J%&WTN>p[/T1oGeW>&J%+S&Mlcm>$Z*uJ -k)lM&k,ILhBD1Hf;#KGVQb2AA#4) -#$LBV\^c7gJZOF(NiY-\4?R>ZN''4+UN[i(PU'81T2[pjXJ.."Eic@;>!+p+XK5\X0l="n:*hiH -XK68$4E.B#,u"'7!'L4]!i$]HjfAZtmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/NnQCT9MC/oZ:mr4cBfuF]In$Sb%j\0g -#$LBV\^d1YJ`_OGNoi6h:f*,5]MMFLfq0dd`\;GqeT"ELk1M[]R-*PbGYh5Kk2q(Q6B^KnBei8W -k2qh':mL0^0kU1B!)WXV!nnoUjlQd5s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZR.u!K^F^X8u@$jK&Qsmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/J_JE'!OctGg&Z&+jOsgts5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGJ`b8?!PimWjoKOBjQ6[4s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZR.u!M?+bX9"fgjK&Qsmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/J_JE'!Qr[cg&].@jOsgts5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGJ`b8?!S,m%joNfcjQ6[4s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(JZPiP#.j6SeVDWDqpbqlKCA!=nCg3Z~> -#$LBV\D!1KJ_G\/J_I*W#3,[>g4n&Hqq;:uJaVg;nC^*X~> -#$LBV\^d1YJ`_OGJ``ro#4) -#$LBV\^c7gJZOF(R]HOV:&1k9V2LP=NJjm=Mi4")S;Wo=RZ!f4MjLNHP`(HhXK7J@WL/U;T`'cK -V8TG>]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/Rb@eX@en_'dBL7:Z`r09Ycu!u`j!J:_m%;.YeSoG]f>4]8bPeXF -dDX`Cir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGRcXXnBDL[8h7CSf]Xm7d]"6/KdCR`fc+;HY]#j*s`k&b-k2sIjilepbfDW8\ -h8JF[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(S#c[R=?H>[.@_h;X@57PD-^FKQ\HW;XFD@PP[-DQXDp'gK<2.P25PXBOcU\k ->r7AUX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/S([qRDbBiZ.E+,&g/q&%MKO&Z^oAi_g7]t$]QHp%g5nX+VV9a;6dhJR\@*i/ -F[E1Jg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGS)sdhF\hhq.F:"7k$:gFOaMOub-W\*k,KrE`dCVFk*SVHYNFtb7bsmk_SIaM -HptK^jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK3(Z4?R>YX(a[Y0!%]>7QcF,VPQEMX;O]FDg?8GE3-.:7''1PXHc_cX@[/T -XK5icri?K^@]ZXnXK4OcP&cZ&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+>S9MC/nfnE*n3ndqK=\PjLe'Ukag)4=PNL>`mNnW45 -#$LBV\^d1YJ`_OGXQC1g:f*/5jc!#453?Bf?;RujhVD$'jr%ciPbOD9Q0.5`>NT\Ek/_H&k$a:K -k2q9&roOTpKBD;mk2oM&_jJ9Yjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK2q\XK4XbW'IGcIB8PeTr^BUX8kBXX9M@T;flqtG5eQR4KOTHX@o+cN`qWH -XK5icri?E\@]ZXnXK4?O,/UDc]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+2Wg=fBRePY&STA$e?c.Ykjg&OhAg'1ugBp4L;QN#SK9\Qmog0_kRZuW`n -g=gnSrn7[YI+m:Jg=f##/Ag*Fir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC%kk2o\&iDo%&Vrkiaf]H$0joA6Qjp#G-DjuuYT)Rj_;!,N:k%2s&]m7S: -k2q9&roONnKBD;mk2o6C0#H`Tli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2qQ4?OCXXF!&lEibC)XK4P`X8kBXX9M@f@T.2bG5eQa4KPP]FC2)MB/i"4 -O/ucFXH6hE@]ZXnXK4LV=I5c#X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+2H9M?GVg71i1OkR<_g=f7"g&OhAg'2!)HtnV%QN#SZ9\S*5PBkj8K1AU) -[G#u.g9u:,I+m:Jg=f3CE50Z9g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQC%\:f&4lk+kgMRHDA.k2oM>joA6Qjp#GEK5[!AT)Rjn;!-eWRt'P^MG$c; -^ZL-Tk.lMRKBD;mk2oIjG08LVjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK2ppXGn'qWG&B74KOZHXK4P`X8kBXX=R&7X9ig2;QQsKC94Lp:QVZZ4KPW\ -6`a^OXH$J=@]ZXnXK4OcXC-jcQp@:bX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+1Yg9VjNf7_l39\R!og=f7"g&OhAg+6[Og'`kRB\M14LYCIdA[^=H9\S4J - -#$LBV\^d1YJ`_OGXQC$ik.Mnrj,<'^;!,W:k2oM>joA6Qjt(,kjp[KrD3:FDk.Z,IKBD;mk2oM&k('o&bZ<98jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK3+r4Bc0$WB!('O/u2>Rr168N''*bqQ('i3`rJ=K<1n34DLqrX<(cNXCsUV -Kfh@X3]fGcFfT7>4Jf-43BTDbPcSO>T#du;]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+Ar9QPQ,f1AY0[G#4a`Jd?\YtR\bqUu=j8T3=`VV9Ek9S_=#g)bRog4W!j -WD#lW8kViNPhCgc9[VRm85)]L]@qoaaN3'>ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC53:jIYDi_<6G^ZK?,d$.5']221$qW81+9m,U*YNFY;:laZ:jrT*9k)2o0 -Z;=7l:/=\^SE5c-:u(3<9MeP\`TE+,e&^YUli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(Q)sk^f;o!0OiOO-]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/Q.l/e!8#iV!CF<:g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGQ0/#'!92Vm!CaoHjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(QE1(^r'(0^S#ch*map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/QJ)>cr(mB1S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGQKA2%r)E` -#$LBV\^c7gJZOF(RB-CbP,nl!map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/RG%YgP1g-"s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGRH=M)P3)u7s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(R]HO>48Gs'SRm#HBk=?EAS$OrMIh[HKOp73AU^_^G\(HAXK6;NVL` -#$LBV\D!1KJ_G\/Rb@e99DR9ea+0N1Kn.k.J:OQOYCNh1W.;@lJ=kQLR"0^fg=hL9e"_H*])@-Z -a2H[9ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGRcXXN:\j,udYFIWN/-NTLPN+r\VI]WZ%p0;LT'@tTSJ<1k2qk_hQ2LP`VkPl -d_t8Pli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK3)6R@0nQXJM>QS#i0US=-CYN+kBLX=9o*1SnDWV-JY*A;?O)R&lQ*S=k'l -VQ>eMAs]U#CJ(Ri/tSUdK7caO`2j0Smap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/XP+?;_SX^Sg -#$LBV\^d1YJ`_OGXQC2Sc->),k2";,d,rd1dEU_6]8TP]jsf%[7,362h0Q9.L:#/fbN?i.d++aj -hWDL]M94oBO(7.e4k%kCYHMED`9%9is4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(XK2qB:/4okW`W"k-EL0";,2'/X8kBXX9M@;B6eE8G5eQR4KN"HXFOucX?:HH -XK5icri?K^@]ZXnXK4OcH%VL&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+25@q0H0fPb800\U;)An-i"g&OhAg'1uGK:.[[QN#SK9\Olog7j8Sg.[Nn -g=gnSrn7a[I+m:Jg=f6SRARg=g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQC%HBk_bOjE>6O1Zi[ACh]16joA6Qjp#F`MP??&T)Rj_;!*D:k,XF&k"qA: -k2q9&roOTpKBD;mk2oM&U9DeZjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK2qoP*.`%WCN,7OK=R6VlW#[X8kBXX9M@^9QG&kG5eQ_4KO`KUJIM`JlROj -XK5icXJ__G@]ZXnXK4 -#$LBV\D!1KJ_G\/XP+2n\[b,YeloVp[bA5neCmUqg&OhAg'1us@$$>/QN#SX9\R*tc=G&NV/*). -g=gnSg=49FI+m:Jg=eth.)O[Bir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC&/_o#%(iEjF>^uiL>hr[c7joA6Qjp#G9AXJ^LT)Rjl;!,`?g1f(!Y&UdJ -k2q9&k2=drKBD;mk2o63.`1 -#$LBV\^c7gJZOF(XK2q><`U?AXGg1\@'#JlXK4P`X8kBXX9M@fGW]naG5eQK4KPV_E+,iL>5hP8 -GcY>/XH$J=@]ZXnXK4OcFG?7&X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+21D/C]Og9PR4H.ocGg=f7"g&OhAg'2!)R8&X%QN#SD9\S37NdKL6ErKng -R+cnfg9bn#I+m:Jg=f6SPH)O=g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQC%DF)rhik.>\UJEF^jk2oM>joA6Qjp#GETi%&AT)RjX;!-nYQ@\2\GlDas -T]Uj5k.Z,IKBD;mk2oM&S$UDYjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK3+.MKBVsWC2W$9!!A/VjT61U5CX_qQ)9F4b]sZDkgKnMJ7[DXIhnSXHtVu -TS,4\:2Gf.>)lmGMG^IJ0T(`^Loc^WR`MQ7]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+@pYEKs:elJuX?J:oOeA=AjcEBC8qV!OK:8uqpN6cOJYD&h,gg;#kT -bG[h4@u7CNEjKqmY@cM34g2%uXP10-`5pX:ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC4,\XOYYiENk'A*0Unhp"F9fssAZqW9Bc;R5F7PhLAm\W!]Rk1!Vek0$$# -f!.cVBT]imH+eX:\SUEZ5e4F<[cYFOcH,,Pli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2Sn??COEf?@VpT#'m;OI9p6B -qHaD^XFOV`WN;3[?3He":bnfeX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP*ipGE\M_f`$(&_qKulbG9?f]m"[HqUu:qGECOl\(]DWGG4uh#+=3!Sp,Cf -qKE1Fg7ie8f%RV3G6Gn=AO"J]g'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQB]2I@I%*jSjQ8c/t.:f<'J5aF/JeqW8.3I@00;_<0a*IB*8.#,:8BVgX!1 -qL&UUk,NiXio\)UI0@pZC.$[qjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(QE1(cr.>!-f;o!PUW9G?]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/QJ)>ir1sCtf@g7?cc=`Dir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGQKA2,r3$+3fB**Qg;i=[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(QE1(ar+,kMS#ch*map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/QJ)>fr."d2S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGQKA2)r.k?BS)sq@s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(RB-CIP,nl!map!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/RG%YGP1g-"s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGRH=L]P3)u7s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(R]HO&3r,j&Ps8HR76diO5nXK5,\UM2rJLAa=: -Q,Ka.]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/Rb@do9)70d]hie(=&@T#:f*)(R8B7(N)6=S:k79RFAPesg=g"4c@o)qWVoWn -]u8V/ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGRcXX-:AO#taAdHI>ZBhD<)f(DTi@]IPZ4cr -#$LBV\^c7gJZOF(XK3),F*!\LXI"!LHE;RWHul0dN.F+eX=:2C6Bub3R8Kr_H>]`EWiW3^X/gnJ -S#iVsKW;,TKOCm]40,DDWMs3[`2j0Smap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/XP+?0P*3T6g:rf6RbFFCSW_IUZ(t(hg*t]^<5"WU_IqHNRu>okf\4tMf\*03 -`7iggW7]hXVg@(L9%hlif%,&H`7bFTs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGXQC2GR[VC]k/s-]UZSPkV4-9']<+p*jsfD&=NI+sb\Z:uUQab7jQ>N!jQ3UY -cfX8;Z/k'0Z%1us:Z^\6io5Eq`9%9is4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(XK2q5F`gHZWD7SY19>=6Cirq\X8kBXX9M@Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+2%Pa#\0f41&05MCuAM3N&[g&OhAg'1uIJshRZQN#SK9\P\og4u -#$LBV\^d1YJ`_OGXQC%7S=F9Qib=pQ6KXFZOdp^rjoA6Qjp#FaM5$6%T)Rj_;!+7:k)QD&jAMA: -k2q9&roOTpKBD;mk2oLuJ&U!Wjp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK2r'ChtMuWDIDISZIrTXK4P`X8kBXX9M@f7 -#$LBV\D!1KJ_G\/XP+3*Lkmh:f4Khpa4e%@g=f7"g&OhAg'2!)=,r6$QN#SX9\RC%^1tsIQs#5$ -g=gnSgfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC&@OH;?Yj(sg=dcSDgk2oM>joA6Qjp#GE>aCVAT)Rjl;!-&FaD]boTO*^< -k2q9&k1@;QKBD;mk2o69/&LEQli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2q/I!I0>XHS$Z:ood\XK4P`X8kBXX=R&7O!\dgEic@?6*..jChBcM9mh>6 -@'!dlXH$J=@]ZXnXK4OcNHLDcWh?E6X9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP+1rSXD=bg:EiGA_OY3g=f7"g&OhAg+6[O[P3Z*OkSO<;VKiEM1OC7@@`sW -HJ3_Hg9bn#I+m:Jg=f6SZBVoRf?;gfg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQC%.VP6$.k/=-oCZ`KUk2oM>joA6Qjt(,k^bV.FRHEYh=6AXhObi/^Au;H" -J`_Qkk.Z,IKBD;mk2oM&]Uct&j4<;4jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(XK3+>A6^("W$Ptb>-)0gTnO_PQXh=QqQ('q/8_IJDldV_A6>/sX<'L*XFMO+ -P@,bK3)4!^>*`9$A8&'.,@k=ELocR9QcQ64]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+A/Irus(eLuE%EnYn+c)<2$^jdneqUu=t3/ZE[N7rr7IrN.$g)`rAg7p3K -\p6&\87R-`EkZIAItZOe/:W.>XP0r[^rY46ir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC4AL3k/>iA-.BGijWHfWd*Eb(_R+qW8164-AYuPidmYL3CZ;jrR@]k,^4j -`IKe"9PK6!H-(5aL5Y3408>3S[cY4&b/i]Lli5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2T"KTD=ZX8[b[UTBE-VNun*TS.uPqQ(%"KT<.,SueuGKU)M;#*Q'hP_=^] -qLf*AXHeHlWiVfjKES*P3_uZpX9Q9(f@>Z*nb^iAa+NjD_!p&EJ,~> -#$LBV\D!1KJ_G\/XP*j'VmX+Gg&@lWcJ#P$d_;WubGV8;qUu;&VmP1$aP,:EVnN&_#.`IA];MRJ -qPOS8g:aD^f\4FFVZb?"8n?Gmg'6R:hV*_4o)%,GbCT*H^@9fAJ,~> -#$LBV\^d1YJ`_OGXQB]>YeS,njo2Ilg#foNhT2qJf!)BaqW8.>YeK8Ne)o_qYfH_)#/fTc`NZSq -qQL4Kk/X^1jQ=qiYQW_C:28\-jp(/Og!tl,nb^iAa+NjD_!p&EJ,~> -#$LBV\^c7gJZOF(QE1(`r*05=f;nsk`iKBUmap!Ee+*=c#KMJckJ6T@6@]~> -#$LBV\D!1KJ_G\/QJ)>fr,i!sf@g4b`nCXVs5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGQKA2(r-SL-fB*'u`o[Kks4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(QE1(dr/1Q -#$LBV\D!1KJ_G\/QJ)>jr3674S(\)+s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGQKA2-r42mGS)sq@s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(RB-C0cE%"er2]m>rN$$pI/U,IR#(^B!fU-)ri?-NTDbhmF]FP&X8m>>X8m>? -X9,A$>PtQ,]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/RG%Y(cIr8]r7V.6rRq:uSc.7C^o[Lg!jZX1rn7CJao0opP\df-g&R<6g&R<7 -g&flBFSshsir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGRH=L -#$LBV\^c7gJZOF(S#c[c=??8Z/_f5OZYa3Uj",.XDK86MEFS6XB@,3Eic?0/Ycr)L4gj8 -4=lJnJS4q_!H!2_X9,A+NrH*]VG*``X9,/S8,fRjTLf$_!h -#$LBV\D!1KJ_G\/S([qgDbBiZ/A3i8g."3X\4fS>d$HDNg57PXY=r?Xg2T,>OP8Df3R371WMhID -9K9B4UP&O!!K3HHg&flK[/Sb\dpUH"g&fR'>5m4Vb$=o!!lfYQrn7CWG5^+qQ]D(!!nk.Pr7VA7 -s5)Iaddm:h#Kq\dlFuc@6%A~> -#$LBV\^d1YJ`_OGS)se)F\_bp/B9YIk"7l"_GF'Vgn-?nk)qL#\PQo#k'&pWR-*O64P>TIZ`u8^ -:clAQXGZu=!Ks8XjoXRi^Ad6rhIbF>joX8H?N0'feRAF=!mu[kroO6mI/W1.TU,T>!p.Bkr8n4L -s4PqXe+*=c#KMJckJ6T@6@]~> -#$LBV\^c7gJZOF(XK3)#9hgJGXGKYG=KGkX>>:inQB46(X:.d"L3[]r>cb#b?*$0fX9h"jXDV1% -XK5icri?Ta@]ZXnXK4OcXC-jcNEc@_!HrM^X8u[brN$#jT`(qmTh#'_!'L1\!HWA^X9"\arN$$O -B)J_14T)8b]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+?$@UcLog9"gnDq]K.FCNPL^:-f2g'hD&WgSgNFkYQRG1oXhg'LI,g5L!Y -g=gnSrn7j^I+m:Jg=f6Sg3TjSZ?6'!!L8fGg&ZH$rRq9VbPg,qbZau!!)3=E!Kr]Hg&]$$rRq:J -K)F=&9`3TKir@lhL=5Yig'>fPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC2;B4n^9k-nu9Fln4PH=tpnaMC^JjpYj=Z_E\rHfjJ%I-+9)jp=lHk*1)) -k2q9&roO]sKBD;mk2oM&k('o&]R'P=!M,YWjoKt@rT4,gf)=_3fO"O=!)WUU!LfPXjoN\@rT4-_ -M>ZK9;#KG[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2q>S!ugFW'm,E<31fqNLNB9X8kBXX9M@F?[$F.G5eQR4KO9GXAtIcT1ONH -XK5icri?Wb@]ZXnXK4I64J\pWPZap`X9!rbrN$$?G5\KC@>Ff_!MN$^X8u+brN$$@FT/?CSPu?` -X9+>eWr9"!4T)8b]'e2#LXYejeHa-In)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+20`5G^-eQ9]-C>,[7ZG]lEg&OhAg'1uUGaFANQN#SK9\QLng2+@Sb$:Wo -g=gnSrn7m_I+m:Jg=f,o:!hGE]Pu@!g&\($rRq:6Q2TD;H`R,!!R+aGg&Ya#rRq:8PlBAfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC%Ccd,hTiEOXSE9=JT]['m_joA6Qjp#FnJ"MsmT)Rj_;!,-:k&SE&eR>J: -k2q9&roO`tKBD;mk2oC?;;C-m`cp>>joMZ@rT4-JT)IdPJ[PI=!SC`WjoK5@rT4-LSGqXPdVmn> -joW/Dj8J*?;#KG[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2qs7Re;pW`hk]PcU!KXK4P`X8kBXX9M@f7 -#$LBV\D!1KJ_G\/XP+2s=BH`sfQ((r]@sc4g=f7"g&OhAg'2!)=,r6$QN#SX9\R[+X`2_BQoS7o -g=gnSg;BG\I+m:Jg=f)L2?);2_J[^!g&\I$rRq:FLAfg,O-fh!!R+aGg&Z<$rRq:8PlBAfPmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC&4?!SZ5jEY$:`ob-[k2oM>joA6Qjp#GE>aCVAT)Rjl;!->L[W^NiTKQR- -k2q9&k0Bg0KBD;mk2ojoN)@rT4-[NW%u?QD"3=!SC`WjoKhArT4-LSGqXPeoB4= -joWJFiVhm=;#KG[li5YgLXYejeHa-In)qLUg-U;~> -#$LBV\^c7gJZOF(XK2ptU6I+*X,3RF5cg)LXK4P`X8kBXX=Hu6V@RTtAZVu!;66j9@<\fS5GFmB -8ZZ?UXH$J=@]ZXnXK4OcVIYRcNEc@_!HrM^X8u[brN$#jT`(qmTh#'_!'L1\!HWA^X9"\arN$$O -B)J_14T)8b]'e2#LXYJa]a(lrn)qLUg-U;~> -#$LBV\D!1KJ_G\/XP+1^cFc!afr`QF;;/Ntg=f7"g&OhAg+-UNdh@\:JD/_lBA2'sH^:sRA* -?.sY+g9bn#I+m:Jg=f6SdXSISZ?6'!!L8fGg&ZH$rRq9VbPg,qbZau!!)3=E!Kr]Hg&]$$rRq:J -K)F=&9`3TKir@lhL=5>`^^%8umcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC$nfu>u0jLjoA6Qjst&jh@u3XM!!jADZK9;#KG[li5YgLXYJa]a(lrn)qLUg-U;~> -#$LBV\^c7gJZOF(XK3+M5"mD6W#%W]C90uKS8]6nN'8"CqQ('i*)s":DleIQ5#\'PX;sF)XD&G6 -L-$59,;DA<>+SYV5(BYf(-Xo,LocS?rN$$CErE'??]"`_!D&m^X9#"brN#u]r2]p?FT/?BQr![^ -!J4q]X8kB\X9Q9(f@>Z*U%s -#$LBV\D!1KJ_G\/XP+AC:LGu*eK%F]L>#o]`Jkh1Z;2EFg&OhEg'6R:hV*_4TD=$AmcqOUfg1,~> -#$LBV\^d1YJ`_OGXQC4V;e7k -#$LBV\^c7gJZOF(XK2T+WiE,#XT#7"XT,:'XK/A%X8]-pXT,:*XK/D'XK&;$rN$4(XK8J&WiPur -#HOr,WiE/%X8T'uX9! -#$LBV\D!1KJ_G\/XP*^.fDaD&gA]\0g"P*1g=b*2g&BV"g'ZNbf\5$3g=k01f_sM.f\5'3f@S^P -f*C!_f[na/g=cGV"52CiQMoM -#$LBV\^d1YJ`_OGXQBQFj8S*>k5OBHjlYXak2bRajo4<:jpL51jQ>Rck2t^ajSe3FjQ>Ucj5]7t -is4].jQ#:_k2lR%"6J[4T)IdPK!oA.AroO:3D;5'P!m6R1roO6rGQ$Y*[:c$/joM3@rT4-@ -W;bo\jI&+-jot)Ng!tkepsK?AkJ6T@6@]~> -#$LBV\^c7gJZOF(QE1(^r&asXf;nt/r2]mTrN$$tNr?$[T9]AV!gn.iri?-_V#@@rMKYHfX8n+T -X8n+UX9,DFHMjiK]'e2#LUR6[rWi>Ko]O$Zg-U;~> -#$LBV\D!1KJ_G\/QJ)>br(I*)f@g5,r7V.QrRq;$[/J\Zb.[c-!l:/,rn7C_ci)Q!Y*Hs)g&S8Q -g&S8Rg&folRf(kDir@lhL:@3[rWi>Jo]j0[fg1,~> -#$LBV\^d1YJ`_OGQKA2%r(mB3fB*(Br8n!grT4.<^A[0pe]@^O!m@.HroO6ug\p79\=LqEjoDmg -joDmhjoXV7U\s6Yli5YgLUR6[rWi>Ko]O$Zg-U;~> -#$LBV\^c7gJZOF(JZPiP#J0?TeVC*km/5B=P+hU4_!p&EJ,~> -#$LBV\D!1KJ_G\/J_I*W#NGd?g4lZsn,1lEOe_[9^@9fAJ,~> -#$LBV\^d1YJ`_OGJ``ro#ODECeVC*km/5B=P+hU4_!p&EJ,~> -#$LBV\^c7gJZOF(JZPiP#eKHUeVC*Or7Cqu#e>u'p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W#ibm@g4lZYr7q;*#eQ),pZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro#j_NDeVC*Or7Cqu#e>u'p?06\g-U;~> -#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:lgNBSd@?c@p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZFm.&f`eXW5JpZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:lgNBSd@?c@p?06\g-U;~> -#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:ansrF`.kY4p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZFc2?STaG%.@pZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:ansrF`.kY4p?06\g-U;~> -#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:^?k7;Q(Pb'p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZF_sQpHQ(Z"2pZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:^?k7;Q(Pb'p?06\g-U;~> -#$LBV\^c7gJZOF(JZPiP'Y<_aeVC*:^!c\[N46L6p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W']T/Lg4lZF_UeLfMnHpDpZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro'^PePeVC*:^!c\[N46L6p?06\g-U;~> -#$LBV\^c7gJZOF(JZPiP"hO-ReVC+&]`R5HT)QD,p?06\g-U;~> -#$LBV\D!1KJ_G\/J_I*W"lfR=g4l[-_?/eLTDl\2pZfK^fg1,~> -#$LBV\^d1YJ`_OGJ``ro"mc3AeVC+&]`R5HT)QD,p?06\g-U;~> -#$LBV\^c7mJ\$EDJ\%hl"i]o]eVC+&]`Pp(Zi7WAp?06\g-U;~> -#$LBV\D!1OJ`;7?J` -#$LBV\^d1[Ja7mQJa9<$"n2KEeVC+&]`Pp(Zi7WAp?06\g-U;~> -#$LBV\^cVbJaS*WJaTH("4u(Y_#E -#$LBV\D!M5JcC<$JcDYJ"5_ad_>`Krimdqf"oIT!nC^*X~> -#$LBV\^dM:JcC<$JcDYJ"524[_#E -"^19U\^f#Wf7DP)f;@1"eH*#Gp[eUK_!p&EJ,~> -"^19U\D#JahLXO7hPT00g&\PMp\"aP^@9fAJ,~> -"^19U\^f)Yfn%h-fr!I&eH*#Gp[eUK_!p&EJ,~> -"'P'S\Ui:^eUc89eH -"'P'S\:N@bg4@tCg&o(Yfg1,~> -"'P'S\Ui:^eUc89eH -"Bk0T\[-jBJVSf3V2#&Wo@3rYnCg3Z~> -"Bk0T\@$mAJVAZ/V1eoUo@a;\nC^*X~> -"Bk0T\[-jBJVSf3V2#&Wo@3rYnCg3Z~> -"^19U\ZptdVuis:`duTidt,u\dfHr+q5=>0nFP04_!p&EJ,~> -"^19U\?gtcWr^/ZJ^T+tJ^V3Z!P-VRWr^',o@a;\nC^*X~> -"^19U\ZptdVuis:`duTidt,u\dfHr+q5=>0nFP04_!p&EJ,~> -"\,r'Q*H8E]`lU -"\?50Qa;SH_?J9GigK31Jb"B_Jb$SH#3hc2s8V*(r5&Kqp@Hu?T=ppKJ,~> -"]3XiYHa#_]`lU -"Y=h;>Hs+c]a2?fkP"SDR-X0keUc8%e\BW?]n=c4iqE',_#D"Jiq2im"(#V5&:a~> -"YbLUA[@9n_?e&tl1anHR-jBog4@t/g:u>I^k()9jnJK3`;[USjS&3!")2jY&qB~> -"[ff-U9TXU]a2?fkP"SDR-X0keUc8%e\BW?]n=c4iqE',_#D"Jiq2im"/W>h,_,~> -&MS*3=0[[s]uo74nDDcgR-X0keUc8%e\BWD]n=c4e^`UJs5(l2iq2im"(?4P(Ou~> -&N"lT@^Cs/_Tq0@o&JGrR-jBog4@t/g:u>N^k()9g=kWYs5;/=jS&3!")NI!)Lq~> -&Oj7;U9TWi]uo74nDDcgR-X0keUc8%e\BWD]n=c4e^`UJs5(l2iq2im"/`]11k5~> -&MS*3=0[Xmh!k!pf%& -&N"lT@^Cp)hXU@$gY1ARR-jBog4@t/g:u>D^k()9rn7S2jS%rqiqDut")NI!)Lq~> -&Oj7;U9TTch!k!pf%& -#r$7+=0[LMLRbsSeH;G2lgB>SJ^o>%^XWG"K@9bseHE.0Lsu"feH96#=;QJ~> -#rI$L@^CcZL7GpTg&mt7mI5\\J_G\/^Y/e*J_'hug'"^4LXc%hg&l/@Af?1~> -#t;D3U9THCLRbsSeH;G2lgB>SJ^o>%^XWG"K@9bseHE.0Lsu"feH;\\W\f5~> -&MS*3=0[[sZCHo>`mN>/R-X0keUc8%e\BWD]n=c4e^`'cQ&M<@iq2im"(?4P(Ou~> -&N"lT@^Cs/[[iABb1>:=R-jBog4@t/g:u>N^k()9g=k)uQ&D9DjS&3!")NI!)Lq~> -&Oj7;U9TWiZCHo>`mN>/R-X0keUc8%e\BWD]n=c4e^`'cQ&M<@iq2im"/`]11k5~> -"Yah'=0[\_]a2'=Kq5fIR-X0keUc8%e\BWD]n=c4e[_3)T=;MIiq2im"(?4P(Ou~> -"Z1UH@^Csk_?d`GKV#lLR-jBog4@t/g:u>N^k()9g:Nl/TY/.YjS&3!")NI!)Lq~> -"\#u/U9TXU]a2'=Kq5fIR-X0keUc8%e\BWD]n=c4e[_3)T=;MIiq2im"/`]11k5~> -"Yah'=0[\]]`tj6Nej(gl%-m+a+;:G`s8r'deo8gS[A@/!TNbCeH96#=;QJ~> -"Z1UH@^Csi_?RK>NeWqgl@I-0bCRjOb6PG+f)1YiT"+a9!T`tGg&l/@Af?1~> -"\#u/U9TXS]`tj6Nej(gl%-m+a+;:G`s8r'deo8gS[A@/!TNbCeH;\\W\f5~> -"Yah'=0[\[]`b^9R-:H!K7SZ+K=up;dK-&Lqn3$io^gT8@<,HdJ,~> -"Z1UH@^Csg_?@BDR-LN!JUrB'J\?U:f$U8'qn`Bpp@Hu?Ck$%8J,~> -"\#u/U9TXQ]`b^9R-:H!K7SZ+K=up;dK-&Lqn3$io^gT8VRribJ,~> -"Yah'=0\Rrp&X^]Ja\0YJa^8?!VuB`p&Y'_o@3qOE`a-.~> -"Z1UH@^Dg(pAsg^JaS*WJaU2=!VuB`pAt0bo@a:_IqBUL~> -"\#u/U9UNhp&X^]Ja\0YJa^8?!VuB`p&Y'_o@3r?];d]<~> -"Yah'=2isGkCMfIkGIDBj7Ce'@<,HdJ,~> -"Z1UH@`dJXl@J5OlDEhHk4@:/Ck$%8J,~> -"\#u/U;bo=kCMfIkGIDBj7Ce'VRribJ,~> -">+@t?X*>7!FD:I^k':P^oP6OVeGj6"*.mG4Fd~> -">Y.?DJ&]\!GS0W^4F"L^8nsKWcRrO"+P>p5C`~> -"@fN#Z)%2m!N!5U^k':P^oP6O^9.1-"1bh-;1J~> -"l$Zc$K/*"(PdnVLS~> -">"/)EHh5.!Hc#+n:C([n>l$Zd>%FG"*/B?VLS~> -"@n9T[(#kC!OL=-n:C([n>l$ZiP,*!"1>LLVLS~> -"#h>U:&%fk;5JitJ_G\/X4dTcAGB7/9eV%oJ,~> -"%+Iq>52\1?E&M/J_>V-X4[NfEVO,J=uV$0J,~> -"*$Y@RJ -s"sg$)YY$J1P%lD6@hJ(630"`p_O#pVYgCD~> -"%5L-+86ZR1k@rD6%M>&5liqdp_j6!VYgCD~> -")i0L3qkH24b5qN6@hJ(630A2pbW(MVYgCD~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/megaco_filter.gif b/lib/et/doc/src/megaco_filter.gif deleted file mode 100644 index bd03929b4c..0000000000 Binary files a/lib/et/doc/src/megaco_filter.gif and /dev/null differ diff --git a/lib/et/doc/src/megaco_filter.png b/lib/et/doc/src/megaco_filter.png new file mode 100644 index 0000000000..cdea3a147e Binary files /dev/null and b/lib/et/doc/src/megaco_filter.png differ diff --git a/lib/et/doc/src/megaco_filter.ps b/lib/et/doc/src/megaco_filter.ps deleted file mode 100644 index 19a1fc6bd1..0000000000 --- a/lib/et/doc/src/megaco_filter.ps +++ /dev/null @@ -1,1733 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/megaco_filter.ps -%%CreationDate: Mon Oct 14 17:46:21 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 469 306 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 290.927657 translate -453.947466 -290.927657 scale -% Image geometry -543 348 8 -% Transformation matrix -[ 543 0 0 348 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 543 string def -/gstr 543 string def -/bstr 543 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 99787 ASCII Bytes -colorimage -!AQV60nB=U!.b-$!:0^c3 -r'Z)9JH16$JH5$:r'Z&~> -"DW"!C3+q+JH16$JH5$:r,[A~> -r]0uYnc&U&JcC<$JcE7[!56GQrr<*T3B;T~> -r^?bdnc&U'JcC<$JcE7[!5?MRrrE$dJ,~> -rcA)>nc&U&JcC<$JcE7[!56GQrr<+8F)uj~> -s"OQTs8VWG!53s6J^o>%\CCSma56ja!WXr0J,~> -s$Qngs8VWC!5=$8J_#D'\CLYoa4gR]!WYVVJ,~> -s)S5As8VWG!53s6J^o>%\CCSma56ja!W[:VJ,~> -!]^8\n(n&XJ^o>%J^q9\!56A.!lY."J,~> -!^m%gn(IcUJ_#D'J_%?^!5?G+!l=q*J,~> -!cnAAn(n&XJ^o>%J^q9\!56A.!lY.\J,~> -!\j]Tn(n&XJ^sYJ!6(hc!6'N>S(.MP`SL[8!',Q~> -!^m%gn(IcUJ_'_L!QrigecEqAJ_$@B!5?G+!l=q*J,~> -!cnAAn(n&XJ^sYJ!6(hc!6'N>S(.MP`SL[8!- -!k6dec1lieHNpfe\-a&eH3F2HiB90eH(;LnC7Q8]n+_AeH!;GhY3Q5hZ',E -hZ',Dh>s\XJ,~> -! -gAdT=g&\>VJ,~> -!k6dec1lieHNpfe\-a&eH3F2HiB90eH(;LnC7Q8]n+_AeH!;GhY3Q5hZ',E -hZ',Dh>s\XJ,~> -!k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc5b -! -!k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc5b -!k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!Zdf)/Hi)=sK6u/! -K7!4?!L/Lne[F!.^$"8HSG(h6SGh:FX8mb~> -! -!k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!Zdf)/Hi)=sK6u/! -K7!4?!L/Lne[F!.^$"8HSG(h6SGh:FX8mb~> -!k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o -MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q -[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM\<^UHaL/4HaM>R -`J](q[+3^GPl5qCe]!c"H],kneZ=[UH]-/!XG_F`XSC!NZ9O~> -!+uTU&KH?_YV[gY).RTM9=8LM1(5`rmLh+"hKD=ZI5HGIK..n -OaVqhdaF,7\qP^@d\6Ygs2"o$JUN6\qU-aZICdkTV1m?KJ^Vu`OaVqhd].`4d[>O#d[?fW_NB8# -ZI70\NMVX5dKI.0]$d#GI0duHJ^VttJ^U7kIK..mOaVqhdaF,7V2`oSJc!mqN=r[RJZcG8J[3_P -_NB8#ZI71tthd]SFTI>Q+pY).R`Y5$EFRJqU?b(5,ldXcttU&KK?_@;WUKsK.T -NK'cod^FS8J^V$U!5@XIpR1^*q3h03!NlEQ~> -!k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o -MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q -[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM\<^UHaL/4HaM>R -`J](q[+3^GPl5qCe]!c"H],kneZ=[UH]-/!XG_F`XSC!NZ9O~> -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk% -Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo -K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO/q\M/S9oU@S9on5`IifV -P^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lFq9:##H[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^ -H]+]E`I",+c*tpt^$!oGSGC\8SFkA/SGUh;X8mb~> -!,tdJUPDTJVC\# -IE'Q`I>OYGL!I\hIDX9dIC?ku^A?,&[XFRhcAACCJUu+hJVC\#IE&jHWm6OfGM2D,T/qJG1Tm_?KTm_X?b(58X -Q$pZpJVCtdKmh7\Y.h>mM9_rGM6aRi`i=HP^6O,Hq9C)%JUPD\JUu+lJUu+dJUPDTJVC\#IE'Q` -I>OfG`dOP3cF;(!^? -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk% -Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo -K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO/q\M/S9oU@S9on5`IifV -P^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lFq9:##H[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^ -H]+]E`I",+c*tpt^$!oGSGC\8SFkA/SGUh;X8mb~> -!s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n -c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g -P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:(k[1Sc$OfVc$Of^XF$J^XF%%MH^r@*K7!UB -#K=B/K?]$q`Vn$cK6tS^`I!74bnu([c-:lfc-:lfc-:lfc)c8^c)c8nc%CBAblN0UJ^([K!57RG -!1`l8!1`]3qjdQ6!NZ9O~> -!5BrJcF$qJcF$qJcF$qJIBc+IA+fdIBLkHIEMQ7!I^5acF;(! -^? -!s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n -c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g -P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:(k[1Sc$OfVc$Of^XF$J^XF%%MH^r@*K7!UB -#K=B/K?]$q`Vn$cK6tS^`I!74bnu([c-:lfc-:lfc-:lfc)c8^c)c8nc%CBAblN0UJ^([K!57RG -!1`l8!1`]3qjdQ6!NZ9O~> -! -!%Z#cDCGe"/X:oJc!^nQ$rYWs+13q -s+13qs+13qs+(3rV>P`DV9XXCpIK-,SIA+s3Kmh7XKn553L!G*pr6>=o -IK%OlIJD+fJcF$qJcF$qJcF$qJH=&mr-\[Dc@LQFc2i?YJ^1aM!5ABZ!4quo!4qmP!1EZ2!1EN. -q3h0/!NlEQ~> -! -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf -c-:lfc-:lfc-:lfc)c8^r657pHhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1 -bm&fI`QcAKKD<\'K6tkfK6tkfK6tkfK6tkEH^t#Y!J>aublYk2S:SqoblGHTeb>U-eGu-8eGu-5 -eb>U4eH)`OJ,~> -!rfXcH^ulcE;Shr6>\DI>t)'I>srGY'm#AcMrImc5*+%`m2k\J^2Pl -J^2PlJ^2PlJ^1EHU&<49JbIChJcF$qJcF$qJHO3#IA-Vb&[$PMcH:]dcAdCtc@pttKmg]6c3B,R -`m2SPM>5BrJcF$qJcF$qJcF$qJHO3#IA-Sas+10p!lfY^J^1aM!5ABZpR1a'!1EZ2!1EQ/pR2!. -!NlEQ~> -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf -c-:lfc-:lfc-:lfc)c8^r657pHhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1 -bm&fI`QcAKKD<\'K6tkfK6tkfK6tkfK6tkEH^t#Y!J>aublYk2S:SqoblGHTeb>U-eGu-8eGu-5 -eb>U4eH)`OJ,~> -!DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB? -boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWnGK6tkfK6tkfK6tkfK6sE$XL,rn -H_cRHHd.IqXK6bq]rZR5XM(^SXF$2FP^BM,bnu([c-:lfc-:lfc-:lf[)IZEUpR51c%CBBblY8! -]n+G;blGHTeb>U-eGu-8eGu-5ebu$ -!RaA,DCPo`lcGTJ]budIAOBTZHBV(IC?_8IC@; -!DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB? -boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWnGK6tkfK6tkfK6tkfK6sE$XL,rn -H_cRHHd.IqXK6bq]rZR5XM(^SXF$2FP^BM,bnu([c-:lfc-:lfc-:lf[)IZEUpR51c%CBBblY8! -]n+G;blGHTeb>U-eGu-8eGu-5ebu$ -!c2W_% -bnu([c-:lfc-:lfc-:M%c)chMH],kfXFkkPXS9sVK6tkfK6tkfK6tkf["E_=`KY^rK<3=MHiD:iMh0-]blGHT -eH!;YS,g7reb>U,ec20 -!+iH`dN9Xb'e]Xb0%SdJUN6Tb(5-?b5[J$ -b5[%mb5[%mb5[%mapbS,J\&^`JUN6Tb(5-Cb5[%ib5[%mb5[%mb5[%mas"WeJUN6Tb-$;LZA!kP -[Y9.#Tm`?OWel.PM8%-/KmeZTpWEMes2t@ms2t@ms2kbUJUtDLQ%=@;Y0) -!c2W_% -bnu([c-:lfc-:lfc-:M%c)chMH],kfXFkkPXS9sVK6tkfK6tkfK6tkf["E_=`KY^rK<3=MHiD:iMh0-]blGHT -eH!;YS,g7reb>U,ec20 -!iDd[`nfc`74mi!.Y~> -! -!iDd[`nfc`74mi!.Y~> -! -!+;!5?Co!NlEQ~> -! -! -! -! -! -! -! -!!%S&JV/N+JV3$9!!%N~> -!!%S$JUrB'JUum5!!%N~> -!!%S&JV/N+JV3$9!!%N~> -!WJ,~> -! -!WJ,~> -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg4\2[ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -!!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg4\2[ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -! -!WJ,~> -!%R+;4h"f21\k.LbF~> -! -!%R+;4h"f21\k.LbF~> -!]` -! -!]` -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^p+;s+:KNs5rIW!.Y~> -!Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_HIEs+(?Is5rIT!.Y~> -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^p+;s+:KNs5rIW!.Y~> -! -! -! -!]` -! -!]` -!%Qdu+g"f21\k.LbF~> -!O -!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/QeMIj"ektYk.1PC~> -!%Qdu+g"f21\k.LbF~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!K*Kl%s5rIW!.Y~> -! -!K*Kl%s5rIW!.Y~> -!]` -! -!]` -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!]` -! -!]` -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -! -! -!gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquH#` -!!)u!!!*#"!!)u!!!%SOJZP]` -!gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquH$9 -!!)uO!!*#P!!)uO!!%T(J_HRHs8W)Ps+1-cs8W,Qs+1*bs8N;WU&X9;\c@6~> -!gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquH$E -!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C9`s8W,Ls+C6_s8N;RV#TT>]` -!]` -! -!DWjo>DYjo>DNjo>DWjo>D[joYVG -joG>A!!*#\!!)u[!!*#\!!)6F!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C9`s8W)Ks+C9`s8N;R -V#TT>]` -!WJ,~> -!PrRq5Orn7>PptG`Jo@a0ErRq5Orn7>PrRq5OJ_G\/RbIfArn@C'rke^8rS%:& -rPJU7#25dNk2s5TJ,~> -!A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^ -!9WDDr8mtZroO1\rT4([roO1\pu_SVoB$#QrT4([roO1\rT4([J`_OGRcaYMrmh%$rk8@3rRLq# -rOr72#1]OLk2s>WJ,~> -! -! -!A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\ -!!)u[!s%KG!;tsZ!;P^V!:o:N!<)$[!<)$[!.j9`k*kH4s8LRKKDrRas8:FIKDrRars%#Ls5rIW -!.Y~> -!]` -! -!A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[ -r;ccX!!)6F!!)u[!!*#\!!)u[!!%T4J``E`s8W)Ks+C?bs8VuHs+C]` -! -! -!A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD -qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<)$[!<2*\!<)$[!.j9`k*kH4s8LRKKE&Xbs8(:GKE&Xb -rs%#Ls5rIW!.Y~> -!WJ,~> -!PrRq5OmFhO?rRq5Orn7>PrRq5OJ_G\/RbIfArn@C'!lG!; -q:bk"s2+g9#25dNk2s5TJ,~> -!A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\ -!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH+BKrT4([roO1\rT4([J`_OGRcaYMrmh%$!knX6 -q:5Lts1SI4#1]OLk2s>WJ,~> -! -! -! -!gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp -rrDVkr;cbsr;_DMJZP9@s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~> -!gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI -rrDWDr;ccLr;_E&J_HOGs8W)Ps+14MommFds8UfHs5rIT!.Y~> -!gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU -rrDWPr;ccXr;_E2J``B_s8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!]` -! -!]` -! -! -! -! -! -! -!^MsquEau!!':*rW)/`!W];%r2fnuJZOL*s6fm:s+C@O -p=91qs8N;RV#TT>]` -!^NLquEbN!!':XrW)09!W^pSr7_/NJ_Gb1s8W)Ps+14M -p=fOts8N;WU&X9;\c@6~> -!^NXquEbZ!!':drW)0E!W_?_r9""ZJ`_UIs8W)Ks+C@O -p=91qs8N;RV#TT>]` -! -! -!DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C[jo>Cbjo>DFjoPPF!<)$]!9O94 -k(Dgrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!o!3?1tX8i6OXFmVS -mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4:nd!<)'[!<;3]!<)'Y -!<2-\!!)0\!;u!W!;5LS!<;3]!;u!Y!<2-\!!)0\!;bgX!<)'Z!<;3\!;,CT!9O:Yjo>C4k(Dgr -s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -!BZq:Z)Sg&Tj\!8?-, -rRq5Orn@APrn7>Prn7>PrRq5Oo\'HKg&Tj\!<1[P!<1[P!<1^P!<1[P!;kIM!;tON!<(UO!;,"C -!;tON!.ijVgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SVZfV5fq;qq_joFQ+!9WDD -rT4([roX4\roO1\roO1\rT4([o]?;WjoFQ+!<2*\!<2*\!<2-\!<2*\!;kmY!;tsZ!<)$[!;,FO -!;tsZ!.j9bk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!DWjo>D\jo>D[k555Xk5>;Xjo>C[jo>DWk5PGTjo>D\jo>D[jo>D\jo>DM -k5PGYjo>DZjoYVGjoG>A!!)rZ!!)rZ!!)u[!!)WQ!W_?_qrRkYJ`_UIs8W)Ks+C@Op=91qs8N;R -V#TT>]` -!gPs!!)qu!!)qu!!)nt!s#F(!;!;i!;rnu!.h5(XT._fec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!gQL!!)rN!!)rN!!)oM!s%'/!;"qB!;tON!.ijVgAh3PgAca(s7Y1H -JcG`Sg7eQ/k.1PC~> -!D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'.`!!)iW!!)iWquH`Y -!!)u[!!)u[r;cHO!!)lXq>gQX!!)rZ!!)rZ!!)oY!s%KG!;#@N!;tsZ!.j9bk5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -! -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'.`!!)iW!!)lX -!!)u[!!*#\!!)u[!!)iW!!)ZR!!)lX!!)iW!!)rZ!!)rZ!!)oY!s%KG!:o7R!9O:Yjo>C4k(Dgr -s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!O)!!*#"!!)nt!!)ksrrDSj -!W];%qlBbtJZOL*s6fm:s+C@Op=91qs8N;RV#TT>]` -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBCf!!*#\ -!!)u[!!)lX!!*#\rrE&\!!)u[!!*#\!!)u[!!)ZR!!)iW!!)u["9@TH!!*#\!!)oY!!)lXrrDTO -!W_?_qrRkYJ`_UIs8W)Ks+C@Op=91qs8N;RV#TT>]` -!^Msq#LAprrB@+rW)nur;c_rrW!&%!!',"!<9/" -!<9.u!;*Ak!;`eq!<0&#!3H/"r2ferqlBbtnZ2clX8r4#quD;LKrk=Brmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!^NLq#LBIrrB@YrW)oNr;c`KrW!&S!!(aP!<:dP -!<:dN!;,"D!;bFJ!<1[Q!8@DPr7_&Kqq;#Mn_+$Eg&V**quD<%L"cS,rn@C's8VfHs+14M#25dN -k2s5TJ,~> -!^NXq#LBUrrB@erW)oZr;c`WrW!&_!!)0\!<;3\ -!<;3Z!;,FP!;bjV!<2*]!9X7\r9!nWqrRkYn`BlQjoGABquD<1L$&F8rmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -! -!o;!:JP@!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -! -!o;!:JP@!.ijTg?@8js8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -! -!ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -!;Zk5GA[k5G@Ejo>D*jo>DWjo>C4k(2[Ok5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!]` -! -!D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rrA5E!!(7*!!)iW!!%T4J`bhO -s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -!.E!<(XL!.ijTg>Uccs8LaPJcGcDgAca(rs%2Ns5rIT -!.Y~> -!D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!352\!!;9_!<2-Z!<)'X -!;kpX!<2-[!<2-[!<;3[!<2-[!<;3\!;>RQ!<)'X!.j9`k2GJ&s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -!m!;W\r!.h5&XPU&Ymf(c:KE(uF -ec1:%rs%#Ls5rIW!.Y~> -!:Q`s8LaPJcGcD -gAca(rs%2Ns5rIT!.Y~> -! -!m!;W\r!.h5&XPU&Ymf(c:KE(uFec1:%rs%#Ls5rIW -!.Y~> -!:Q`s8LaPJcGcDgAca(rs%2Ns5rIT -!.Y~> -!;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDVWIjYr8mtZq;qYWrT4([qW7bX -r8n:ck2l[+joFQ+!;bgX!<2*\!<)$[!;,CR!;YaW!.j9`k2,8#s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -!WJ,~> -! -!DZjo>D[k555Xjo>DXk5#)X -jothJjoFQ+!<2-Y!<)$^!9WDDoB$#Qq;qYWJ`_OGhWFkWJ,~> -!M'X8r7$!!)u!!!)u!!s#F(!;!8l!;W\r!.h5&XPU&Ymf(c:KE(uFec1:%rs%#Ls5rIW -!.Y~> -!:Q`s8LaPJcGcDgAca(rs%2Ns5rIT -!.Y~> -!DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&nY!!)rZ!!*#\!!)u[!!)u[!!)lX -!!)fV"9@QajoGDC!!)u[!!)u[!s%KG!;#=Q!;YaW!.j9`k2,8#s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jo>D\k5PG\jo>D\k5PG[ -jo>D\jo>D[jo>D[jo>D\k5PD_jo>D\jo>D\k5PGZk5PGPjo>D\jo>D[jo>D\jo>C4k(2[Sk5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF]k5G>]joGABrW!#^!!)u[rW)iX -r;cfYrr<,_!!)u[rW!#^!!)rZ!!)QOrW)iXrW%N3J`bqRs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -! -! -! -! -! -! -!;+k5>;Yk4eq-k(2[Ck5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -!:2k4Rj:!9`MD!;kpX!.j9`k0E,hs8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!C4k4[p;!9N>C!;YaW!.j9`k0E,hs8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!g4=h/g&Tj\!8?-,g&V$(!!)uOrrAD>rVuuQ!<1^N!<1^P!!(aP!<(XL!<(XO!<:dQ -!<(XM!;bCL!;Y=K!;bFK!<(XO!<:dQ!.ijTg>^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -!WJ,~> -! -!D[jo>DYjo>D[k5PFKjo>D\k5PG]jo>D[jo>D\k5PG\jo>D[jo>DWjp1tL -!9WDDk2l[Bjo>DYjo>DWjo>DYjo>D\jo>D[jokbI!9WDDJ`_OGj6$CArmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!WJ,~> -! -!D[jo>DYjo>CFjo>DZjoPPF!;km\!9WDDrT4([rT4([q<%\Wr8mtZqrRkY -r8mtZq;qYWr8mtZr8mtZroX4\J`_OGhrat=rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!gMr!!%SOJZR_0s6fm:s+C@Op=91qs8N;RV#TT>]` -!gNK!!%T(J_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>CFjo>DXjo>DYjoYVGjoGAB!!)u[!!)iW!!)oY!!)oY!!)rZ -!!)iW!!)rZq>gNW!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -! -!D[jo>DYjo>CFjo>DXjo>DYjoYVGjoGAB!!)u[!!)iW!!)oY!!)oY!!)rZ -!!)iW!!)rZ!!)fV!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -! -!DZjo>D[jo>DZk5PFKjo>D[joYVGjoGAB!!*#\!!)u[!!)u[!!*#\!!)u[ -!!)lX!!)u[!!)oY!!)iW!!)oY!!)u[!!*#\!!%T4J`bhOs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -!gAM$MgAM$NgAV*PgAV*NgAV*NgAM$KgAM$LgACsLgACsK -gAM$NgAM#&g4@u9gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!;Wk5PFJk5>;Yk5>;Zk5GA\k5GAZk5GAZk5>;Wk5>;Xk555Xk555W -k5>;Zk5>:2k(2[Qk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!C!!)u!!!*#" -!!)u!!!*#"!!)u!!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlqQ'YsnZ2]jrN#u! -ri?)"rN#u!orJ,nrN#u!oW8&mqlBbtrN#u!ri?)"rN#u!rN#u!poFMsX8r4#!!)u!!!%SOl)apQ -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!PrRq5Op"BBGrRq5Oo\0PrRq5OrRq5Opt>cLg&V**!!)uO!!%T(l.Z1; -rn@C's8VfHs+14M#25dNk2s5TJ,~> -!\k5#&Xk5GA\k5GA\k5#)Ok5#)Wk5G>]joEKb!!)u[!!*#\ -!!)u[!!*#\!!)u[!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&QqW7bXn`BfOrT4([ -roO1\rT4([p#Z5SrT4([o]H/RqrRkYrT4([roO1\rT4([rT4([puVVXjoGAB!!)u[!!%T4l/r$G -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!O)!!*#"!!*#""ota+!3E7%p8eQ#XK2E' -X8o?'!<0)"!6D5A!<&u!!<0&"!<&u!!<0&"!<&u!!<0&"!<&u!!;3Dp!3?1tX8i8!X8i7nX9&C' -!;W\t!3?1mX9&C'!;`bs!:6ce!;W\r!;3Dn!<&u!!;3Dp!3?1tX8i8!X8i7rX8i8"X8i7pX9&C' -!<&u!!<&u!!.h69XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -!!;Y=K!;5%G!<(UO!;5%I!87GMg&M-Og&M-Kg&M-Pg&M-Ig&_9. -!<(UO!<(UO!.ikggAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!D[joYVGjoG>A!!*#\!!)u["9@TH!!*#\!!*#\"p!fJ!9WDDp>uY]k2l[+ -joFQ+!<2-\!6F:&!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;5IU!9O:Yjo>D[jo>DSjoPPF -!;YaY!9O:RjoPPF!;bgX!:8hJ!;YaW!;5IS!<)$[!;5IU!9O:Yjo>D[jo>DWjo>D\jo>DUjoPPF -!<)$[!<)$[!.j:sk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!q:YfKp"BBGrRq5Oo@a0Eqq;#MrRq5OqUtoLrRq5Opt>fMg=cQ%g&M,(g?I>k -s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!D[joYVGjoG>A!!*#\!!)u[#QX#L!9O:DjoGDC"p!fJ!9WDDp>uY]k2l[+ -joFQ+!<)$[!;u!Z!6XF(!<2*\!<)$[!<2*\!<)$[!;YaW!;#=Q!;kmY!<)$[!;#=Q!;bg[!9WDD -o&]oPqW7bXm,e9Jq;qYWp#Z5SrT4([oB$#QqrRkYrT4([qW7bXrT4([puVYYk2l[=jo>C4k3;%. -s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!m!<&u!!;!8l!;iht!<&u!!;`bs!<&u"!3H/"r2]u#XK2EtX8i6OXQZbcmf(c:KE(uFec1:% -rs%#Ls5rIW!.Y~> -! -!A!!*#\!!)u[!s%KG!<)$`!9O:DjoG;@!!)NN!!)rZ!!)cUrrC7) -!!)u[!!)u[!!*#\!!)u[!!)lX!!)TP!!)oY!!)u[!!)WQ!!)lX!s%KG!:o7P!;bjV!:o:O!;kpX -!;,CR!<)$[!;#=Q!;kmY!<)$[!;bgX!<)$\!9X7\r8n(]k2l[>jo>C4k31t-s8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!lTiqlK_r`2iq=r2]kurN#u! -ri?)"rN#u!qlBbtr2fbqr2]kuqlBbtrN#u!riGtsr2]kuqlBbtri?)"nuMfkp8e5on>lTiq5aPr -orJ,nrN#u!o;holqlBbtrN#u!qQ'YsrN-#!ri?)"ri?)"ri?)"qQ'YsJZS%9s6fm:s+C@Op=91q -s8N;RV#TT>]` -!PrRq5Oqq;#Mr7_#Jr7V,Nqq;#MrRq5Orn@5Lr7V,Nqq;#Mrn7>Po%F'Dp=]KHnCdjBq:YfK -p"BBGrRq5Oo@a0Eqq;#MrRq5OqUtoLrS%8Orn7>Prn7>Prn7>PqUtoLJ_K;@s8W)Ps+14Mp=fOt -s8N;WU&X9;\c@6~> -!;Xjo>D\jo>D[k5>;YjokbIjoFNDqrRkYnE']Nqr[hW`9%%"r8mtZrT4([ -roO1\rT4([qrRkYr9!kVr8mtZqrRkYrT4([roX(Xr8mtZqrRkYroO1\o&]oPp>u>TnE']Nq;qYW -p#Z5SrT4([oB$#QqrRkYrT4([qW7bXrT=+[roO1\roO1\roO1\qW7bXJ`c.Xs8W)Ks+C@Op=91q -s8N;RV#TT>]` -!lTipT+>p`iK.?qlBbt -rN#u!ri?)"rN#u!r2]kun>lTiqlBbtrN#u!o;holqlBbtri?)"nuMfkp8e5on>lTiq5aProrJ,n -rN#u!o;holqlBbtrN#u!qlBbtr2]kurN#u!ri?)"ri?)"qlBbtJZS"8s6fm:s+C@Op=91qs8N;R -V#TT>]` -!PrRq5Or7V,NnCdjBqq;#MrRq5Oo@a0Eqq;#Mrn7>Po%F'Dp=]KHnCdjBq:YfKp"BBG -rRq5Oo@a0Eqq;#MrRq5Oqq;#Mr7V,NrRq5Orn7>Prn7>Pqq;#MJ_K8?s8W)Ps+14Mp=fOts8N;W -U&X9;\c@6~> -!u>TnE']Nq;qYWp#Z5S -rT4([oB$#QqrRkYrT4([qrRkYr8mtZrT4([roO1\roO1\qrRkYJ`c+Ws8W)Ks+C@Op=91qs8N;R -V#TT>]` -!lTir2]kurN#u!a/f7@ -qQ'YsrN#u!ri?)"rN#u!rN#u!n#QKhqlBbtrN#u!o;holqlKYpo;holp8e5on>lTiq5aProrJ,n -rN#u!o;holqlBbtrN#u!qlBbtr2]kurN#u!riGtsrN#u!JZRt7s6fm:s+C@Op=91qs8N;RV#TT> -]` -!PrRq5OrRq5On(IaAqq;#MrRq5Oo@a0EqqCoIo@a0Ep=]KHnCdjBq:YfKp"BBG -rRq5Oo@a0Eqq;#MrRq5Oqq;#Mr7V,NrRq5Orn@5LrRq5OJ_K5>s8W)Ps+14Mp=fOts8N;WU&X9; -\c@6~> -!D[jo>D[joPPF!;tsZ!<)$^!9WDDroX4\qrRkYnE']Nr8mtZrT4([a6!@% -qW7bXrT4([roO1\rT4([rT4([n)aTMqrRkYrT4([oB$#Qqr[bUoB$#Qp>u>TnE']Nq;qYWp#Z5S -rT4([oB$#QqrRkYrT4([qrRkYr8mtZrT4([roX(XrT4([J`c(Vs8W)Ks+C@Op=91qs8N;RV#TT> -]` -!WJ,~> -! -!D[jo>DZjo>DYjo>D[joYVGjoGDCrrDrY!!)NN!!)rZrrE&\!!)rZrrCC- -!!)u[!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)WQ!!)oY!!)u[!!)WQ!!)cU!!)TP!!)oY!!)u[ -!!)rZrrDuZ!!)u[!!*#\!!)u[!!)rZrrDuZ!!)u[!!)rZrrDoX!!)oY!!)u[!!)oY!!)oY!!*#\ -!!)lX!!)u[!!)u[!!%T4l/r$Grmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!DZk5#&Xk5GA[jo>D[k555Ok555YjoGJErW)iXrrCC-qZ-TWr;ccX -r;cfYqZ-WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!g5jq>gMrrVuu#!6D5A!<&u!!<0&"!<&u! -!<0&"!<&u!!<0&"!<&u!!;*Am!;iht!<&u!!;*Am!;W\t!3?1lXT&:sX8i7jX8i8!X8i8"X8i8! -X8i7nX8i8!X8i7mXT&:tX8i8!X8i7uX9&C'!<&u!!<&u!!<&u!!;W_r!.h66XT._fec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!g6Cq>gNKrVuuQ!6Ejo!<(UO!<1[P!<(UO -!<1[P!<(UO!<1[P!<(UO!;,"F!;kIM!<(UO!;,"F!;Y=M!87GEgA_0Lg&M-Cg&M-Og&M-Pg&M-O -g&M-Gg&M-Og&M-FgA_0Mg&M-Og&M-Ng&_9.!<(UO!<(UO!<(UO!;Y@K!.ikdgAh3PgAca(s7Y1H -JcG`Sg7eQ/k.1PC~> -!_joFQ+q>g6Oq>gNWrVuu]!6F:&!<)$[!<2*\!<)$[ -!<2*\!<)$[!<2*\!<)$[!;,FR!;kmY!<)$[!;,FR!;YaY!9O:Qk5PGXjo>DOjo>D[jo>D\jo>D[ -jo>DSjo>D[jo>DRk5PGYjo>D[jo>DZjoPPF!<)$[!<)$[!<)$[!;YdW!.j:pk5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!WJ,~> -!PrRq5Orn7>PrRq5Orn7>PrRq5Op"BHIg&V$(!!)uO!!)]G!W^pSq:YlM -g&Ud!!W^pSqUtoLm+MF>q:YfKp"BBGrRq5Op"BHIg&V$(!!)uO!!)rN!W^pSrRq5OrRq5OrRq5O -qUtuNg&Q]Xk1]k8rn@C's8VfHs+14M#25dNk2s5TJ,~> -!DYjo>DYjo>D\k5PG\jo>D[jo>DTjp;%MjoFQ+!9WDD -roX4\aQWJ,~> -!]` -!+Q!8?-,g=cP\ -g&V**!!)rNrrC3q!!*#P!!)uO!!*#P!!)uO!!)iK!!)WE!!)oM!!)uO!!)WE!!)lL!s%'/!:nhD -!;bCL!:8D>!;Y=K!;5%G!<(UO!;"nE!;kIM!<(UO!<(UR!8?-,rRq5OrRq5OrRq5Opt>]JJ_K8? -s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!DZjoPPF!<)$[!;tsZ!<2*\!<)$[!;>O]!9WDDk2l[+ -joGAB!!)rZrrC4(!!*#\!!)u[!!*#\!!)u[!!)iW!!)WQ!!)oY!!)u[!!)WQ!!)lX!s%KG!:o7P -!;bgX!:8hJ!;YaW!;5IS!<)$[!;#=Q!;kmY!<)$[!<)$^!9WDDrT4([rT4([rT4([puVPVJ`c+W -s8W)Ks+C@Op=91qs8N;RV#TT>]` -!W -J,~> -!PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-LgAM$BgAV*LgAV*Eg&M-O -g&M-Eg&M-Mg&M-Og&M-Og&h?/g&V')r;ccLr;c`K!!%T(k1]k8rn@C's8VfHs+14M#25dNk2s5T -J,~> -!DZjo>D[jo>DZjoPPF!<)$[!;P[Y!9WDDn`BfOr8mtZpZDJUbN8d)rT4([ -rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXk5>;Nk5GAXk5GAQjo>D[ -jo>DQjo>DYjo>D[jo>D[joYVGjoG>Ar;ccXr;c`W!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>W -J,~> -! -! -!DZjo>D\jo>DZjo>D\jo>D\jo>DVk5>;Mjo>DYk5>:ujo>DZjo>D[jo>D\ -jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DTjo>DNjo>DWjo>DS -jo>D[jo>DQjo>DYjo>D[jo>D\jo>D\jo>D[jo>D[jo>DWjo>DZjo>C4k2th+s8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!WJ,~> -! -!DZk5>;Wk555Yjo>DVjoYVGjoFr6!!)cU!!(%$!!)oY!!)u[!!*#\!!)u[ -!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)`T!!)NN!!)iW!!)]S!!)u[!!)WQ!!)oY -!!)u[!!*#\!!*#\!!)u[!!)u[!!)iW!!)rZ!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!W -J,~> -! -!DZjo>D\jo>D[jo>DZjoYVGjoG2=!!)u[!!)WQ!!)rZ!!)u[!!((%!!)lX -!!)u[!!*#\!!)u[!!)u[!!)KM!!)oY!!)u[!!)WQ!!)oYqZ-6M!!)`T!!)NN!!)iW!!)]S!!)u[ -!!)WQ!!)oY!!)u[!!*#\qZ-WX!!)u[!!)iW!!)rZ!!%T4k2u^Drmh%$s8VfCs+C@O#1]OLk2s>W -J,~> -! -! -!DZjo>D[jo>D\jo>DZjo>D\jo>D[jo>D\jo>D[jo>DQjo>DZk5PG\jo>DZ -k5PG-jo>D[jo>D\jo>D[jo>D\jo>D[jo>D\jo>D[jo>DQjo>DYjo>D[jo>DQjo>DUjo>DPjo>DY -jo>D[jo>DZk5PGZjo>D[jo>D\jo>D[jo>DZk5PGZjo>D[jo>DZk5PGXjo>DYjo>D[jo>DXjo>D[ -jo>D[jo>D\jo>D[jo>DZjo>C4k2th+s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!g2iquH_t! -!g3BquH`M! -!g3NquH`Y! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5& -XF[J$XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -!gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT -g4@u+gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9` -k(2[Ck5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\ -!<2*e!9WDDk2l[+joGDCrr@W4J`_OGdcUT0rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -!A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC -#ls,M!9WDDk2l[Bjo>DZk5PF4k(2ZGk1Snss8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!WJ,~> -! -!7rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -!DYk5>:2k(2ZG -k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -! -! -!D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z -!<2*\!;u!Z!.j9`k(2[Jk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4 -J`_OGg#i>7rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!DLjo>C4k(2ZGk3V71s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!WJ,~> -! -!WJ,~> -! -]` -! -! -]` -!WJ,~> -! -!WJ,~> -!g/h!!)Jh!!%SO -JZOF(l`C-Srmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!g0A!!)KA!!%T( -J_G\/le;C=rn@C's8VfHs+14M#25dNk2s5TJ,~> -!g0M!!)KM!!%T4 -J`_OGlfS6Irmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -!g/h!!)Jh!!%SOJZOF(l`C-S -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!g0A!!)KA!!%T(J_G\/le;C= -rn@C's8VfHs+14M#25dNk2s5TJ,~> -!;Xk5#)Xjo>DZjo>DZjo>DYjoYVGjoG&9q>g0M!!)KM!!%T4J`_OGlfS6I -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -!!:T%M!.j9`k(2[\k5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!O)!!*#"!!)nt!!)ksrrCrX!!)Jh!!%SOJZOF(l`C-S -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!WJ,~> -! -! -! -! -! -!DLjo>D)jo>C4k(2ZGk3M10s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DLjo>D(jo>C4k(2ZGk3V71s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!;Nk5>:2k(2ZGk-a@Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!]` -! -!]joFc1!!)3E!!(1(!!%T4J`ar6s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -!g&M-9g&M,qg&M,(g4@tsgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!D\k5PGJjo>DEjo>D(jo>C4k(2[6k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DZjo>D\k5>;Zk5PD]k5GAZk555Vk5GAZk5G>\k5GA\k555(jo>C4k(2[6 -k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DWjo>D[jo>D\k5PG\jo>D[jo>DWjo>D\jo>D[jo>D\jo>D[jo>DOk5#): -jo>C4k(2[6k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!DXjo>DYjoYVGjoGAB!!)u[!!)lX!!)rZ!!)u[!W_?_r8mtZhrae9oB$#Q -J`_OG`9.+"rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!gGp!!)nt!!)Pjq>fKU!!%SOJZQhl -s6fm:s+C@Op=91qs8N;RV#TT>]` -!gHI!!)oM!!)QCq>fL.!!%T(J_J)s -s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!DXjo>DYjoYVGjoGAB!!)u[!!)lXq>gHU!!)oY!!)QOq>fL:!!%T4J`ar6 -s8W)Ks+C@Op=91qs8N;RV#TT>]` -!WJ,~> -! -!DXjo>DYjoYVGjoGAB!!)u[!!)lX!!)cU!W_?_r8mtZb2r[(J`_OG`TI4# -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!]` -! -!D[joYVGjoGAB!!*#\!!)u[!!)u[!!*#\!!)u[!!)u[!!*#\!!*#\!!)u[ -!!*#\!!(=,!!%T4J`ar6s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!;Yk5>;Zk5GA\k5GAZk5GAXk5>;Zk5G>\k5GAZk5GA*jo>C4k(2[6k5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!WJ,~> -! -!kiVjE"Qf^HjoD"8!!)HL!!%T4hWFkWJ,~> -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -!]` -!Pn(IaA -J_Jr6s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -! -jo>D[jo>DWjo>D\jo>D[joYVGjoG>A!!*#\!!)rZ!!)'ArrDuZ!!)oY!W_?_qrRkYroO1\n)aTM -J`beNs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -!PrRq>Rg=cQ)g&M-PgA1gCgA1gBg&M-Mg&M-Mg&_9.!;kIM!<1[P!:JP@!.ik\gAh3PgAca( -s7Y1HJcG`Sg7eQ/k.1PC~> -! -! -!PrRq5Orn7>PrRq>Rg=cQ)g&M-Pg&M-/g&M-Mg&M-Mg&_9.!;kIM!<1[P!:JP@!.ik\gAh3P -gAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!D\jo>D;jo>DYjo>DYjoPPF!;kmY!<2*\!:JtL!.j:hk5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -!Prn@APrn7>PrRq5Orn7>Prn@APrRq5OrRq5Oj4XJ5qUtoLrRq5Orn7>P -rRq5OrRq5Orn7>Po%F'DJ_Ju7s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!]` -!WJ,~> -!O -"53_TgAV*PgAV*OgAV'Qg&V')r;bm3r;c`Kr;ccLr;c`KrW)KB!!%T(hV/#0rn@C's8VfHs+14M -#25dNk2s5TJ,~> -!]joG>Ar;bm?r;c`Wr;ccXr;c`WrW)KN!!%T4hWFkWJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -!]` -! -!e`Hi3J`aQ+s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!A!<2-\!41ef!.j:Dk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!A!<)$[!;u!Y!<)'[!<;3]!<;3\!<;3\!<2-[!;bjW!!23^rT=(Zr9!nW -o&]oPJ`aQ+s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!A!;P[V!<2*\!<)$c!9O:DjoFQ+!<)$[!;kmY!;kmY!<2-\!<2*\!<2*\ -!<2*\!<)$[!:o7P!.j:Dk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!r;s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!!<)$[!;tsZ!<2-\!;kmY!<)$[!;kmY!;tsZ!;ts]!9WDDr8n(]k2l[3 -jo>C4k.0XSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!]` -!]` -! -!A!<)$[!<2*\!;P[V!;YaZ!9WDDqW7bXr8mtZq;qYWo]?,Ro&]oPJ`aQ+ -s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -! -!]` -!]` -! -!B!9X7\qr[hWroX.ZqW@eXqr[eVr9!qXr9!qXroX+Yn`BfOJ`aQ+s8W)K -s+C@Op=91qs8N;RV#TT>]` -! -! -!C4k.9^Ts8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k.BdUs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -!gACsHg&M-PgA1gCgA1fXg&M-9gAV*LgAV*6gAh3PgAca( -s7Y1HJcG`Sg7eQ/k.1PC~> -!D\k5#)Ok5#(djo>DEk5GAXk5GABk5YJ\ec1:% -s7Y"CKE(rUeYN6-k.LbF~> -! -!+N!8?-,g=cP8g&M-7g&M-K -g&M-7gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!DUjo>D\jothJjoFQ+!;>OZ!9WDDk2lZPjo>DCjo>DW -jo>DCk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!O!nmVSrS%5N!SRPOg&M-MgAV'Qg&V-+"p!B2!8?-, -rn@;NrRqe_g=cP\g&Tj\!!(a,!!(a,rW)uPrW(s3rVuuQ!<1^N!<1^P!!(aP!<(XL!<(XO!<:dQ -!<(XM!;bCL!;Y=K!;bFK!<(XO!<:dQ!;Y@Ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!DYk5G>]joGDC"p!fJ!9WDD -roX.ZrT4Xkk2l[+joFQ+!!)0D!!)0DrW)u\rW(s?rVuu]!<2-Z!<2-\!!)0\!<)'X!<)'[!<;3] -!<)'Y!;bgX!;YaW!;bjW!<)'[!<;3]!;YdWs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -!PrRq5Oq:Z)S -g&Tj\!8?-,rRq5Oqq;#Mq:YfKqq;#Mrn7>PrRqDTg&Tj\!;bFLs8LaPJcGcDgAca(rs%2Ns5rIT -!.Y~> -! -!WJ,~> -! -!D\jo>DZjo>DZjo>D[jo>DZjo>DYjo>D[jo>DY -jo>DZjo>DYk5PGYjo>D[jo>DAjo>DZjoPPF!;km\!9WDDrT4([rT4([q<%\Wr8mtZqrRkYr8mtZ -q;qYWr8mtZr8mtZroX4\p?)DTrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!g5j!!)ks!!)nt!s#F(!<&u!!<&u!!;W\r!;iht!;iht!;rnu!;W\r -!;rqp!<0&"!;3Gnmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!g6C!!)lL!!)oM!s%'/!<(UO!<(UO!;Y=K!;kIM!;kIM!;tON!;Y=K -!;tRI!<1[P!;5(Gs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!D\jo>DTjo>D[jo>DZjo>DYjo>D[jo>DYjo>DZ -jo>DYjo>DWjoYVGjoG&9q>g6O!!)lX!!)oY!s%KG!<)$[!<)$[!;YaW!;kmY!;kmY!;tsZ!;YaW -!;u!U!<2*\!;5LSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -!+H!<(UO!;tON!;kIM!<(UO!;kIM!;tON -!;kIM!;Y=N!8?-,in=A4qUtoLqq;,Pg=cQ*g&M-Og&M-Kg&M-Mg&M-Mg&M-Ng&M-Kg&M-Ng&M-J -g&M-GgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!DZjoPPF!;tsZ!<2*\!;>OT!<)$[!;tsZ!;kmY!<)$[!;kmY!;tsZ -!;kmY!;YaZ!9WDDioU4@qW7bXqrRt\k2l[Bjo>D[jo>DWjo>DYjo>DYjo>DZjo>DWjo>DZjo>DV -jo>DSk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DZjoYVGjoGDCrrE#[!!)u[!!)rZ!!)rZ!!*#\rrDrY!!)rZ!!)u[ -!!)oY!!)oY!!)fVrrD!>!!)u[!s%KG!<)$[!<2*\!<)$[!<)$[!<2*\!<)$[!;bgX!<)$[!;kmY -!;YaW!;kmY!<)$[!<2*\!;5LSs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!]joG>Ar;cfYquH]XrW!#^!!*#\quH]Xr;ccXquH`Y -r;cZU!!(p=r;cfYr;ciZrW)u\rW)oZrW)oZr;c`Wr;ccXquH]XquHZWr;ciZr;cTSs8W)Ks+C@O -p=91qs8N;RV#TT>]` -! -! -!Cpjo>C4k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!Cojo>C4k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!:nk5>:3k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!!.j9`k3;%.s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!ks8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!!.j9`k3;%.s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!C4k(2ZGk1Abqs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Snss8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk1Jhrs8LRKKE(uDKE(rUeYN6-k.LbF~> -! -! -!C4k(2ZGk1Jhrs8LRKK)krCKE(rUeYN6-k.LbF~> -! -! -!C4k(2ZGk1Abqs8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -!C4k(2ZGk)\[)s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ng+s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)ea*s8LRKKCZ_Urs%#Ls5rIW!.Y~> -! -! -!C4k(2ZGk)\[)s8LRKKCJmFeYN6-k.LbF~> -!Xs4*qFk2s>WJ,~> -! -!Xs4*qFk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!WJ,~> -!#25dNk2s5TJ,~> -!WJ,~> -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -!!)uB".[noKDE4Zrrpr*K>%%J^pmQs+:Hfs8UX"rVu`-s8VE8"e -!!)u?".@koJbd1]rrq,-J\qHeJ_G\/J_I6[s+( -!!)uB".[noKDE4Zrrpr*K>%%J^pmQs+:Hfs8UX"rVu`-s8VE8"e -!%Xk!H(!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~> -!%Xk!H(!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~> -!%Xk!H(!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~> -!%Xk!H(!knX6pso=qs8VE8"e -! -!%Xk!H(!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~> -!%Xk!H(!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~> -!%Xk!H(!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%Xk!H(!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~> -! -! -! -!'as8RZ#J^o>%Xk!H(!knX6rIamYs8VE8"e -! -! -!0P!.Y~> -! -! -!0P!.Y~> -! -! -! -! -! -! -! -! -! -! -! -!Tn/ngToPfH](26hb5SsQR/ha~> -! -!\j]"rOqgI!53s`JcC<$NrSXork/B'!&9!~> -!^m%2rOVUC!4ma]JcC<$NrSXlrji0!!(;>~> -!bq_[rOqgI!53s`JcC<$NrSXork/B'!- -!\j]"n%A^kJ`_OGJ``!T!6suG!h96NJ,~> -!^m%2n%&LeJ`_OGJ``!T!6XcA!gs$VJ,~> -!cn@dn%A^kJ`_OGJ``!T!6suG!h973J,~> -s#C,\S=K,_!1\W&J`_OGNog>dn\+sm!WY58J,~> -s$QngR@3TV!1AE#J`_OGNog>an[eag!WYVVJ,~> -s)S5AS=K,_!1\W&J`_OGNog>dn\+sm!W[:_J,~> -">Mnk!!)MYJ\?WJJ\@&VnXTUZs"OL6J,~> -r^?bdn -rcA)>n=5'CJ\?WJNP4kPrrE%>J,~> -rAaj4JH16$JH16$li7#?r]'s5J,~> -r'Z)9JH16$JH5$:r'Z&~> -r,[DhJH16$JH5$:r,[A~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/megaco_tracer.gif b/lib/et/doc/src/megaco_tracer.gif deleted file mode 100644 index cc4f747f03..0000000000 Binary files a/lib/et/doc/src/megaco_tracer.gif and /dev/null differ diff --git a/lib/et/doc/src/megaco_tracer.png b/lib/et/doc/src/megaco_tracer.png new file mode 100644 index 0000000000..b4b65a9f47 Binary files /dev/null and b/lib/et/doc/src/megaco_tracer.png differ diff --git a/lib/et/doc/src/megaco_tracer.ps b/lib/et/doc/src/megaco_tracer.ps deleted file mode 100644 index da1e1b6ba0..0000000000 --- a/lib/et/doc/src/megaco_tracer.ps +++ /dev/null @@ -1,2508 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/megaco_tracer.ps -%%CreationDate: Mon Oct 14 17:35:19 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 443 516 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 501.599409 translate -428.031496 -501.599409 scale -% Image geometry -512 600 8 -% Transformation matrix -[ 512 0 0 600 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 512 string def -/gstr 512 string def -/bstr 512 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 143198 ASCII Bytes -colorimage -">Mns0fadbJH16$MZ -r'Z)9JH16$MZEZCJ,~> -rc8*TF+F=B!.b-.!;png~> -"?A1s!!)Qh!53s`JcC<$fDbiaa8c/>!\l\qJ,~> -r^?bdnc&U'JcC<$JcF@%!5?MRrrE$dJ,~> -rcA)>nc&U&JcC<$JcF@%!56GQrrE%>J,~> -">Mn:s8VWG!53s6J^o>%f@9l7a56ja!WY58J,~> -s$Qngs8VWC!5=$8J_#D'f@Br9a4gR]!WYVVJ,~> -s)S5As8VWG!53s6J^o>%f@9l7a56ja!W[:VJ,~> -!]^8\n(n&XJ^o>%J^rB&!56A.!lY."J,~> -!^m%gn(IcUJ_#D'J_&H(!5?G+!l=q*J,~> -!cnAAn(n&XJ^o>%J^rB&!56A.!lY.\J,~> -!\j]Tn(n&XJ^qcj!6(hc!6'N>n'qEO`SL[8!',Q~> -!^m%gn(IcUJ_%il!QrigecEqAJ_'>A!5?G+!l=q*J,~> -!bq`8n(n&XJ^qcj!6(hc!6'N>n'qEO`SL[8!- -!k6HeH(;L`75%1Ut*/*HiB90eH(;LYLN]fH[GaVs4%.&HgoPdUqMW8!57RPpRLp5s.'&E -s.'#D!NZ9O~> -!edTEhf"Q]`R? -RJbb>XoNt~> -!k6HeH(;L`75%1Ut*/*HiB90eH(;LYLN]fH[GaVs4%.&HgoPdUqMW8!57RPpRLp5s.'&E -s.'#D!NZ9O~> -!k7dec0srMuM6.UjIaFeH*Y&eCFGC!/(-u!J>a^eI9ELe^_X/K6r6@c./'U -HNBA]r-JI&^&-=l`I"uBMgNFnPa'_KK6u/!`P&V.%?#SPeWc -!Jr-\R!qU5CpkL'dQL!nDhR>$'CS]]BG -qgAO.dXh@F!K"PfdLj?I[aL.``m0^/daE\tdaH"@ZdK;BIE'QpOj_[/J^Vu`[e.uL[XGlIdK%#E -f(YU+f);$:f);$8ecDoRJ,~> -!k7dec0srMuM6.UjIaFeH*Y&eCFGC!/(-u!J>a^eI9ELe^_X/K6r6@c./'U -HNBA]r-JI&^&-=l`I"uBMgNFnPa'_KK6u/!`P&V.%?#SPeWc -!k7dec'n!c.1?sH\9o"!J>aKec1!o^&$7[K6ue3)l0"S`IiN=]qg"-c,IB0 -H[EH>`RT<^]tL4gKDX1&Mj2cBK7!LG"bV0PeUr4TeH(;Lqpbk&He$Z!Hh5bgP`(FL!57RPpRLs6 -pRM3=!NZ9O~> -!-8#s+/\J!J,[t\cBJ@df4m]dMo$Rd`-idV7NLOL!%9D -\p]"<]#)mHJ\&FdI>RjL"c8MmdXcuHdf4mudf4m)df4mqdf4mudf4midK,ViMUDL=kLTBqp=Au+ -rRM"P!.Y~> -!k7dec'n!c.1?sH\9o"!J>aKec1!o^&$7[K6ue3)l0"S`IiN=]qg"-c,IB0 -H[EH>`RT<^]tL4gKDX1&Mj2cBK7!LG"bV0PeUr4TeH(;Lqpbk&He$Z!Hh5bgP`(FL!57RPpRLs6 -pRM3=!NZ9O~> -!k7deJ!:^HaM>BH\6t$e]!GnK='1Z`K^=J'\10eH[C[ie^^aZH[C[qeZ=[U -Mlcg+!2TU@*lX%qXGb&^H[C[ie^^aZH[C[qe]!GnK='1ZMi4Zpo[WtgqUPV((T`PFK6u.fP^@b8 -`RWLsMnOai[+3^GPl5t.eHLlEeWbE^rm_(GH^t)cs*O^ps*Oaqs*O[o"MK/qeXZVc#gJ!Ke^];! -eYN1ks2>D)H\8]UeVf?eMq*H,qpk_)'"rpE['YI4[+3^GMgL)`e^_X'rHf7/`KY^rMoF5sXG_FP -Mp9eRMgLA`psfA7rd+pqK6u/!K6u.Erd4[a%?#Rc[+3]bMl_ie]mIGNeH!;GhY3Q5hYE]>h>s\X -J,~> -!JFNdXctt`fYh# -NP'pJUu7t -JUu7CrdFg`%$>slZI70\NMVW_JV!^Hs,@Z"Kn6D8Kn6PXd__,pKsK.T_NFeF'[k!`JUNNldaG:T -I=6spd]SFTM6?X%!1Eh7#g.^LdaE\td\6Ygs2#5-I>+uTdZ'6_NRG7`\r4u:^?=)ARJ#/,RJbV: -XoNt~> -!k7deJ!:^HaM>BH\6t$e]!GnK='1Z`K^=J'\10eH[C[ie^^aZH[C[qeZ=[U -Mlcg+!2TU@*lX%qXGb&^H[C[ie^^aZH[C[qe]!GnK='1ZMi4Zpo[WtgqUPV((T`PFK6u.fP^@b8 -`RWLsMnOai[+3^GPl5t.eHLlEeWbE^rm_(GH^t)cs*O^ps*Oaqs*O[o"MK/qeXZVc#gJ!Ke^];! -eYN1ks2>D)H\8]UeVf?eMq*H,qpk_)'"rpE['YI4[+3^GMgL)`e^_X'rHf7/`KY^rMoF5sXG_FP -Mp9eRMgLA`psfA7rd+pqK6u/!K6u.Erd4[a%?#Rc[+3]bMl_ie]mIGNeH!;GhY3Q5hYE]>h>s\X -J,~> -!U4eH!;[bq4:4H^)dNP_4V5`IifVP^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lF -r66G)H[EHNK6rNP]r\oSH]-.EH],8!Lr`Qa$^Mkp!is*O^XrlldBH]+]EK6tkVXM(uf -Mp9M!H]+D@K?_YnK>l)fHd0gSHd0f^Hc?!/!kir5rltIirQY@hs31V@H].gH,+O#!c,G$V^!21V -c-:lfc,G$V]u>VV]p*l_c%CA$Us4gMqopaGH]+D@H]+D@K?_AfK>!Lr`Qa$f`Qa$^c+U3l[!R_U -UjJ$,[%t[BH^)4.H`[%f+2rSR^!21Vc-:lfc,G$V]u>VV]p*l_c%CA$Us6l*S;YVl^$!oGSGC\8 -SFkA/SGUh;X8mb~> -!$@?b(58XQ$pZpJVCtdKmh7\Y.h>mM9_rGM6aRi`i=HP^6O,H -r6?M+JUPD\JUNBO^952YI>Q7GI>P8.[G!J,[tcMrFucH;u3Oo3KKTmar+`drQT -c@LPlc@LPl`drQT`driTQ$pZtJUNBOcA@DTc7XZrNM1cKNM1cScH:]l\s7]`b(58`c@p\l^952Y -I>Q7GI>P8 -!U4eH!;[bq4:4H^)dNP_4V5`IifVP^CBoK7h.fK6tkVXM(ufMp8&EMmTje`N4EN]p*lF -r66G)H[EHNK6rNP]r\oSH]-.EH],8!Lr`Qa$^Mkp!is*O^XrlldBH]+]EK6tkVXM(uf -Mp9M!H]+D@K?_YnK>l)fHd0gSHd0f^Hc?!/!kir5rltIirQY@hs31V@H].gH,+O#!c,G$V^!21V -c-:lfc,G$V]u>VV]p*l_c%CA$Us4gMqopaGH]+D@H]+D@K?_AfK>!Lr`Qa$f`Qa$^c+U3l[!R_U -UjJ$,[%t[BH^)4.H`[%f+2rSR^!21Vc-:lfc,G$V]u>VV]p*l_c%CA$Us6l*S;YVl^$!oGSGC\8 -SFkA/SGUh;X8mb~> -!s.#(q9A -c,G$^prsY.Hd0ffHd0ffHd0ffHd/X=SB\-^XNcBErQP@iP`*cd^$!oGSGC\8SFkA/SGUh;X8mb~> -!YX!Jc'p&^ -!s.#(q9A -c,G$^prsY.Hd0ffHd0ffHd0ffHd/X=SB\-^XNcBErQP@iP`*cd^$!oGSGC\8SFkA/SGUh;X8mb~> -!U^qgJc-:lfc+Sa^MgL*$H[G\8s*Oais*OXf&;,>S -c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%i`P&t(r6>7gqTT%nHiD85K6tkVK7f)/K?_YnHd0ff -Hd/@5Us7/:Hd0g"XNf":Hc?!/!kir5rltIirQY@hs0MdFqTT&*HiD8#K6tkfK6tkfK6tkfK6tk= -r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.ic2W.cbn#GRc-:lf -c-:lfc-:lfc(t8a"/O1oHi;1iH^'H5!58<\!582u!58*V!1`l8!1``4q4.B5!NZ9O~> -!PcAV%8!JcH_,lcFS^\NI?N+I=;%=!J,[ucMr=icMrIq -cMrIqc3V"8JW5)3c@(-=c2a^=I06=kJV!^D!6Y;Xr6>=oIJV7hJcrltOqIJqIkJcE:]_YVOYQ$rYWs+13qs+13qs+13qs+(3r -V>P`DV9XXCpIK-,SIA+s3Kmh7XKn553L!G*pr6>=oIK%OlIJD+fJcF$q -JcF$qJcF$qJH=&mr-\[Dc@LQFc2i?YMp;=:r6bSVq3_5op -!U^qgJc-:lfc+Sa^MgL*$H[G\8s*Oais*OXf&;,>S -c%CAfc+Sa^MgL*$H[G\8!2TO>"/O1oHi)%i`P&t(r6>7gqTT%nHiD85K6tkVK7f)/K?_YnHd0ff -Hd/@5Us7/:Hd0g"XNf":Hc?!/!kir5rltIirQY@hs0MdFqTT&*HiD8#K6tkfK6tkfK6tkfK6tk= -r-JOAc%CB:bmT/Nc-:lfc-:lfc(t8as.g0PUs7/:Hd06VK8Y)/c$Og8c2W.ic2W.cbn#GRc-:lf -c-:lfc-:lfc(t8a"/O1oHi;1iH^'H5!58<\!582u!58*V!1`l8!1``4q4.B5!NZ9O~> -!auboq^dc&6qnc%CYnc%CAfc%CAf -XF$J^c$Of^c$RFSc'3RVrlkM?H^t)[s*O^hs*OLb(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657p -HhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1bm&fI`QcAKKD<\'K6tkfK6tkf -K6tkfK6tkEH^t#Y!J>aublYk2S;YVl^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~> -!RjH -s+13qs+13q$&sMYc@pttKmg]6c2t.sU&<49Jb%(eJURC?s+10ps+)9;NIf6tKn[gtJUu+lJUu+L -I@8C'JUPhdIE'RXQ$o\3c2s\fRJtJ4JURLBs+0pi(86/rcH^ulcH^ulcH^ulcH^ulcE;Shr6G=n -p -!auboq^dc&6qnc%CYnc%CAfc%CAf -XF$J^c$Of^c$RFSc'3RVrlkM?H^t)[s*O^hs*OLb(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657p -HhP\nK6tkfK6tkfK6tkEH^t&Z&Zg>Lc-:T^c&6qnc%CYnK6t<1bm&fI`QcAKKD<\'K6tkfK6tkf -K6tkfK6tkEH^t#Y!J>aublYk2S;YVl^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~> -!U-eGu-8eGu-5ebu$< -ebu$:eH)`OJ,~> -! -!U-eGu-8eGu-5ebu$< -ebu$:eH)`OJ,~> -!:M%c%CAfc%CAf -c)cPM["E_MS>?,.#/ugZH\7j-rQY@hrQY@hpK6tkfK6tkfK6tkf`KY^rK<3>!K7gO`Hd/pMH^pmYSB\-nH[C[ic)cPEK<4gl(k[1[ -c%CAfc%CAfc*W+M]u?4_H\8EEK7!UBs,2cZ!58<\!582u!58*VpRLp,s.'& -!+iHY(;;4Kn7CTKmfMcI@86XM1'f/^<3:+I>+]tardp? -J\$D`b0%/HI@['[REDOdI=6sdb/0EpI>+iHJV!C7!.k#q"1lX+JcYQ%=@;RDSpF!J,[tb5[%db5[J$b5[%mb5[%mb5[%mapbS,J\&^`JUN6T -b(5-Cb5[%ib5[%mb5[%mb5[%mas"WeJUN6Tb-$;LZA!kP[Y9.#Tm`?OWel.PM8%-/KmeZTpWEMe -s2t@ms2t@ms2kbUJUtDLQ%=@;Y0);Nq3:rgp>G!.Y~> -!:M%c%CAfc%CAf -c)cPM["E_MS>?,.#/ugZH\7j-rQY@hrQY@hpK6tkfK6tkfK6tkf`KY^rK<3>!K7gO`Hd/pMH^pmYSB\-nH[C[ic)cPEK<4gl(k[1[ -c%CAfc%CAfc*W+M]u?4_H\8EEK7!UBs,2cZ!58<\!582u!58*VpRLp,s.'& -! -!-t/qL&@Tk/mb*J\m;e!5?Cs!NlEQ~> -! -! -! -! -!K6r6HQ,O$BP_4=8UrC$SUr -! -!K6r6HQ,O$BP_4=8UrC$SUr -! -! -! -!!%S&JV/N+K7a.(J,~> -!!%S$JUrB'K7O"&J,~> -!!%S&JV/N+K7a.(J,~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -! -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -! -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -!]` -! -!]` -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N -k2s>WJ,~> -!No\0No\0 -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N -k2s>WJ,~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~> -!_)\!!(a,!!(^Q!87DQg=cN,J_G\/n(Rem"ektYk.1PC~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~> -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~> -! -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~> -!s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N -gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN -!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTg@*bqJH_bIk2s5TJ,~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~> -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W -J,~> -! -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W -J,~> -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~> -! -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -!Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg@ -!]` -!]` -!Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg@ -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!%n^Rf=s5rIW!.Y~> -! -!%n^Rf=s5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -!%e("Vt -s5rIW!.Y~> -! -!%e("Vt -s5rIW!.Y~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!]` -!LZg -U&X9;\c@6~> -!]` -! -! -! -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -!%J^sbM"f21\k.LbF~> -! -!%J^sbM"f21\k.LbF~> -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -!%J^sbM"f21\k.LbF~> -! -!%J^sbM"f21\k.LbF~> -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT> -]` -! -!m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT> -]` -! -! -! -!m9j1PHmjFdL4J^rr6"f21\k.LbF~> -! -!m9j1PHmjFdL4J^rr6"f21\k.LbF~> -!n&_uG; -! -!n&_uG; -! -! -! -!%"f21\k.LbF~> -! -!%"f21\k.LbF~> -!%"f21\k.LbF~> -! -!%"f21\k.LbF~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -! -! -! -!t$^&S-0eHMcKk2s>WJ,~> -! -!t$^&S-0eHMcKk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!eH#X+eH#XIeH#WVeH#X+eH#XIeH#XIec,TWec5[IeH#XCeH#X%eH#XIec5ZpeH#X= -ec5[Jec5Zkec17'^&S-.ec1:%^&S-0eHMcKk2s>WJ,~> -! -!eGoU+eGoUIeGoTVeGoU+eGoUIeGoUIec#QWec,XIeGoUCeGoU%eGoUIec,WpeGoU= -ec,XJec,Wkec17'^&S-.ec1:%^&S-0eHMcKk2s>WJ,~> -!eH#X+eH#XIeH#WVeH#X+eH#XIeH#XJeH#XKeH#WXeH#WaeH#WpeH#XWJ,~> -! -!eGoU+eGoUIeGoTVeGoU+eGoUIeGoUJeGoUKeGoTXeGoTaeGoTpeGoUWJ,~> -!NqUPWG!S.5Kec5[Jec,U,ec5[Jec5[LeH>j%s8W)KrVuoJ!WU^Ls8UXLs8:CIs8:CIs8CLJ -s8LOLs4.,Kf@BnRs8VbE!knX6qpbkGs5rIW!.Y~> -!N -!nmVSqV(rL!SRPPgA_0OgAV*1gA_0OgA_0Qg&h?/!!*#Pr;clO! -! -!j%ec5Tu!<<#J!<<#J$3/Q+s4./"s4./JeH#XKeH>j%ec5Ep!<;uI!<9mc"96p% -s8CIJs8CIJs8CISs4,["ec42"ec5Tu!<<&K"96p%s7k+Es8:CIs8LOXs4./"s4,["e^a]Mec5Qt -"96p%s8LOKs52?/s4,["rm_#KrRD#Me^a]ueH#XIeHc-)ec42"ec5Tu!<<&K"96p%s8CIJs8CIJ -s8CIMs4,["qUG`Kec42"rRCoJrm_,Ne^a]YeIV]1ec41Ms4,["e^a]Mec5X!!<;uI!<<#J"96p% -s8CIJs8:CIs8LONs4,["rm_#KeCFSO!<;YCs8VuH"f21\k.LbF~> -!PrRq>Rg=cQ*g&M-Ng'7W3g&Th,g&V**!!*#P!s%'/!<(UO!<(UO -!<(UR!8?-,qUu&Pg&Th,rRq5Orn7GSg=cPcg(+2;g&Tj\!8?-,g=cP\g&V-+!!)rN!!)uO!s%'/ -!<(UO!;tON!<1[S!8?-,rn7>PeCsqR!<;YAs8VuM"ektYk.1PC~> -! -!Rec42"e^a[!rm_,Ne^a]peH#XIeH#XKeI)?,s4./"ec41Ms8LRKs8LRJ -s8CIJs52?/s4,["rm_#KrRLoIr7(fIr7)&Pe^a]Ms4./JeH#XKeHQ!'ec41Mrr;rI!<<#J"96p% -s8(7Ks4./"s8CIJs8LONs4,["iRIr.r7),Re^a]Mec41Ms8LOKs8:CIs8CIMs4,["rRCoJr7(fI -rmh#JrRCoJeCFSOo"G)'qpbkGs5rIW!.Y~> -!PrS%5Nr7V,Nr7VAUg=cP\!87GOg&M-Pg'%K1g&Tj\rW)oN!!)uO!s%'/ -!;bCP!87G,!<(UO!<1[S!8?-,iS"83r7VGWg=cP\g&Tj\!<1[P!;tON!<(UR!8?-,rRq5Or7V,N -rn@>OrRq5OeCsqRo"tG,qq;4Is5rIT!.Y~> -! -!j%ec5Kr"TR$Pec5Tu!<<&K"96p%s5DK=s4,["e^a]Mec41Ms4,[" -rm_5Qe^a]Mec5Tu"96p%s8CIJs8:CIs8LONs4,["rm_#KeCFSOnGiC9"f21\k.LbF~> -!Tg=cP\g&V-+!!(p1!s%'/!<1[P!<(UR!8?-,rRq5Or7VAUg=cP\!87GOg&M-P -g'@]4g&Th,g=cQ*g&M-Og&h?/g&V!'"9@-Ug&V**!!*#P!s%'/!9)WB!8?-,g=cP\g&Tj\!8?-, -rn7PVg=cP\g&V**!s%'/!<(UO!;tON!<1[S!8?-,rn7>PeCsqRnGiC>"ektYk.1PC~> -! -!UcOs8UXLs4./"ec#OIec5[FeHZ'(s4./LeboIIec5XM -ec4UYs8W&Js8W,Lrr3&Ms8W)Ks8W,LrVulIs8W)Kr;QcIr;ZfIs8W)KrVtI!s+BqC!e^OQqpbkG -s5rIW!.Y~> -! -! -!]` -!^idJcGcDgAca(s81LRU&X9;\c@6~> -!]` -!]` -! -!tea(ccKE(uFec1:%s81=M -V#TT>]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!ec5ZmeH#XEeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcK -k2s>WJ,~> -! -!ec,WmeGoUEeGoT,eGoT,eGoTHec1:%s7Y"CKE(uKeHMcK -k2s>WJ,~> -!WJ,~> -! -!WJ,~> -!j%s8W)K!<;cCs8W&Js8W,L -$3/QUs4,["ec5[Jec5[Jec5[Kec#OEeH#W,eH#W,eH#WHec1:%s7Y"CKE(uKeHMcKk2s>WJ,~> -! -!WJ,~> -!j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7b%e -s4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!!<;iE!<7r,!<7r,!<8qHs+C@Op=91q -s8VuH"f21\k.LbF~> -! -! -!!<;uI&c^D3s4,[" -e^a]Mec41Ms4,[!s8LOKs81=Hs7k+Es,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]` -! -!!!)rI&HLA3!7fU" -e^XZMeH".M!7fX!!<1LK!;k:H!;P(E!/f;,!/f;,!2e]` -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]` -!.H!<(XO -!<:dP!!(aN!!_-W!8?-,!<(XO!;tRN!;bCL!/fJ1!/fJ1!2eKMJcGcDgAca(s81LRU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKE(uFec1:%s81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~> -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAca(s7Y1HJcGcIg'+2Mk2s5TJ,~> -!WJ,~> -! -! -! -!j%ec5X!!<<#J"96p%s8LOKs8CIMs4,["rm_#KpXLGee^a]Mec41M -s4,["e^a]Mec41Ms4,["e^a]Mec41Ms8LOKs6S89s,,>,s,,>,s/+?HKE(uFec1:%s81=MV#TT> -]` -!PpY$bjg=cP\g&Tj\ -!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!<1[P!:8D>!/fJ1!/fJ1!2eKMJcGcDgAca(s81LRU&X9; -\c@6~> -! -]` -!j%ec5X!!<<#J"96p%s7=b@s8:CZs4,["e^a]Mec41M -s4,["e^a[!rm_#Kqpb]Hm*u+9MU__,MU__,VUb^!s8VfCs+C@OqpbkGs5rIW!.Y~> -!Pqq;#Mm+MF>MV8%1MV8%1VV;'$s8VfHs+14Mqq;4Is5rIT!.Y~> -! -!j%ec5X!#liH*s4./"ec5X!!<<#J"96p%s8LOKs7b%es4,["e^a]M -ec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!"96p%s6nJ,s,,>,s/+?HKE(uFec1:%s81=M -V#TT>]` -! -!]` -! -!N -#20%Wg=cN,rS%8Or7_/Nmb.X@MV8%1MV8%1VV;'$s8VfHs+14Mqq;4Is5rIT!.Y~> -! -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT> -]` -! -! -]` -!,s/+?HKCZ_Us81=MV#TT> -]` -! -!m&!7fX!!1D@;!/f;,!2e -]` -!j%s8W&Jrr;fErVuoJ!WU^LrrUaNs8LONs4./LrRLoIq:,NG -ec,UKec5[Jec5XLec,RMec5[Kec5[Jec,UKec#LKec5Nsr;ZcH!<8J;!<7r,!<8qHs+BmUs8VuH -"f21\k.LbF~> -! -! -! -!PqUtuNg&V**!!&G@!!%o1!!&nMs+0aX -s8VuM"ektYk.1PC~> -! -! -!]Jr7V,NrS%5Nrn7GSg=cQ+gA_0Ig&M-O -gAV*Og'[o7g&Tj\!8?-,g=lN+rS%8OrRq5Orn7>PqUtuNg&V**!!&G@!!%o1!!&nMs+0aXs8VuM -"ektYk.1PC~> -! -!j%ec5X!"96p%s8:CI -s7k+Es8CI_s4,["e^a]Mec41Ms4,["e^a]Mec5Qt!<<&K"TR$&s8VuHr;ZcH!<8J;!<7r,!<8qH -s+BmUs8VuH"f21\k.LbF~> -!g&Tj\!8?-,g=cP\g&Tj\!;P7P!8?-,g=cQ+g&h?/g&V-+!s%'/!;tON -!;P7J!<(Ud!8?-,g=cP\g&Tj\!8?-,g=cP\g&V')!!*#P"9@00!!)oMquH`M!!&G@!!%o1!!&nM -s+0aXs8VuM"ektYk.1PC~> -! -!:!<7r,!<8qHs+BmUs8VuH -"f21\k.LbF~> -! -! -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?H -KCZ_Us81=MV#TT>]` -! -!]` -!,s,,>,s/+?H -KCZ_Us81=MV#TT>]` -! -!m&!7fX!!;Y.F!/f;,!/f;,!2e]` -!j%s8W&Jrr;`C!<<&K!rpgNrm_)Mec5Eprr<#Ks8N5Ps8UX" -rVulIs8W&Jrr;fEr;ZcH!<;lF!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -!Nq:Z,Tg=cP\g&Tj\!<1[P -!<(XN!<(XO!;G1K!87GOg&M-Kg&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -! -!g&Tj\!8?-,g=cP\g&Tj\!;G1I!;tON!;tON!;P7S!8?-,g=cP\g&V-+ -#QWT4!87G,g&V')!!)iKquH`M!!)iK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2M -k2s5TJ,~> -!WJ,~> -!W -J,~> -!g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T -J,~> -!W -J,~> -! -! -! -! -!PrRqGUg=cP\g&Um$!!%o1!!%o1!!&nMs+0aXs8VuM"ektY -k.1PC~> -! -! -!+J!8?0)!!(aN!;Y=T!8?-, -g=cP\g&V-+!!)uOrW)oNrrDlK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -!m&!7fX!!;=qE!7fWt!!(RI!;Y.O!7fU" -e^XZMeH#U!!!)uJrW)oIrrDlF!!%o,!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~> -!W -J,~> -! -!W -J,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!eHc-)s4./"ec1WZ!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -! -!eHZ*)!7_)"eGtTZ!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~> -!eH>j%s4.)JNR\%/MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -! -!eH5g%!7h#JNR\"/MU_\,VUb^!o"G)'qpbkGs5rIW!.Y~> -!j%s8W&Jrr;fErVuoJ!WU^LrrUaNs8LONs4./LrRLoIq:,NG -ec,UKec5[LeH>j%s8W#I#QN?)s8UXLs7t4Bs8UULs,GP/s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!W -J,~> -!rQg&Th,g=cOdg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T -J,~> -!W -J,~> -!j%ec5Tu!<<&K"96p%s7k+Ls4./"s4,["NR\%/MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -!]Jr7V,NrS%5Nrn7GSg=cQ+gA_0Ig&M-O -gAV*Og&h?/g&V**!!*#P!s%'/!;P7Q!87G,!8?-,NS4@4MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -!j%ec5X!"96p%s8:CI -s7k+Es8CISs4,["e^a]Mec5Tu!<<&K"96p%s7t4Bs8UULs,GP/s,,>,s/+?HKCZ_Us81=MV#TT> -]` -!g&Tj\!8?-,g=cP\g&Tj\!;P7P!8?-,g=cQ+g&h?/g&V-+!s%'/!;tON -!;P7J!<(UX!8?-,g=cP\g&V**!!*#P!s%'/!;Y@G!<:aQ!0,\4!/fJ1!2eKMJb$\Xs81LRU&X9; -\c@6~> -! -]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!m&!7_(,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~> -!eH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -! -!eGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?H -KCZ_Us81=MV#TT>]` -! -!]` -! -! -! -!j%s8W&Jrr;`C!<;rH#636(s4,["q:5KEs4./L"P*PPe^aWu -rmh&KrRLoIq:5ECrm_#Kq:,KFMU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -!Pq:YfKMV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -!WJ,~> -! -!WJ,~> -! -!Rg=cQ&g'Ic5g&Tj\!8?-, -rn7>PrS%5NrS%8OpY#ZKg&V**!!)iK!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -!g&Tj\!8?-,g=cP\g&Tj\!;G1I!<1[P!;tOQ!8?-,q:Z,Tg=cP\g&Tj\ -!<1[X!8?-,g&Tj\!;tON!;Y@H!<1[P!;Y=K!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!ec5ZmeH#XEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>W -J,~> -! -!ec,WmeGoUEeGoT,eGoT,eGoTHec19m^&S-0eHMcKk2s>W -J,~> -!W -J,~> -! -!W -J,~> -!j%s8W)K!<;cCs8W&Js8W,L -$3/QUs4,["ec5[Jec5[Jec5[Kec#OEeH#W,eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7b%e -s4,["e^a]Mec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!!<;iE!<7r,!<7r,!<8qHs+BmUs8VuH -"f21\k.LbF~> -! -! -!!<;uI&c^D3s4,[" -e^a]Mec41Ms4,[!s8LOKs81=Hs7k+Es,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!!!)rI&HLA3!7fU" -e^XZMeH".M!7fX!!<1LK!;k:H!;P(E!/f;,!/f;,!2e]` -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -!.H!<(XO -!<:dP!!(aN!!_-W!8?-,!<(XO!;tRN!;bCL!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -! -! -! -!j%ec5X!!<<#J"96p%s8LOKs8CIMs4,["rm_#KpXLGee^a]Mec41M -s4,["e^a]Mec41Ms4,["e^a]Mec41Ms8LOKs6S89s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]` -!PpY$bjg=cP\g&Tj\ -!8?-,g=cP\g&Tj\!8?-,g=cP\g&Tj\!<1[P!:8D>!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!]` -!j%ec5X!!<<#J"96p%s7=b@s8:CZs4,["e^a]Mec41M -s4,["e^a[!rm_#Kqpb]Hm*u+9MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -!Pqq;#Mm+MF>MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -!j%ec5X!#liH*s4./"ec5X!!<<#J"96p%s8LOKs7b%es4,["e^a]M -ec41Ms4,["e^a]Mec41Ms4,["e^a]Mec5X!"96p%s6nJ,s,,>,s/+?HKCZ_Us81=MV#TT> -]` -! -! -]` -! -!N -#20%Wg=cN,rS%8Or7_/Nmb.X@MV8%1MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!g&M,1g&M,1g&M,MgAc`p_Z0Z5g'+2M -k2s5TJ,~> -!WJ,~> -! -!MV8%1MV8%1VV;'$o"tG,qq;4I -s5rIT!.Y~> -! -! -! -! -! -!PrRqGUg=cP\g&Um$!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -!+H!<(UO!<(UR!8?-,q:Z,T -g=cP\g&Tj\!<1[P!<(XN!<(XO!;Y=K!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!m&!7fX!!;=qC!<(FJ!<(FM!7fU"q:,cO -e^XZMeH".M!<1LK!<(II!<(IJ!;Y.F!/f;,!/f;,!2e]` -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!eH5d$s8CIJs6%o4s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!eH,a$!<(FJ!9_l4!/f;,!/f;,!2e]` -!eHGp&s4,[!s6%o4s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!eH>m&!7fX!!9_l4!/f;,!/f;,!2e]` -! -! -! -!WJ,~> -! -!WJ,~> -!j%ec5X!s8ViD!<<#Jrr;uJ"96p%s8CIJs8LONs4,[" -psfHGec5Tu!<;64!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -!cLg&V**!!)39!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!WJ,~> -! -!WJ,~> -! -!Orn@8Ms4[JQpY#`M -g&Tj\r;c'8!!%o1!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!ec5[eH5d$s8CIJs/XZMs,,>,s/+?H -KCZ_Us81=MV#TT>]` -! -!ec,XeH,a$!<(FJ!3=WM!/f;,!2e]` -!eHGp&s4,[!s/XZMs,,>,s/+?H -KCZ_Us81=MV#TT>]` -! -!eH>m&!7fX!!3=WM!/f;,!2e]` -!j%s8W)K!<;fDrVuoJ!WU^L -rrUaNs8LONs4./LrRLoIq:,NGec,UKec5[LeH>j%s8W#I#QN?)s8UXLs7t4Cs8LOKs/XZMs,,>, -s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7XtC -s8:CIs81=Hs8LOQs4,["e^a]meH#XJeHu9+ec42"s4,["rRCoJrm_,Ne^a]peH5d$s8CIJs/XZM -s,,>,s/+?HKCZ_Us81=MV#TT>]` -!+H -!;tON!;kIM!<1[V!8?-,g=cQ"g&M-Og'Ic5g&Th,!8?-,rRq5Orn7GSg=cQ%g&_9.!<(UO!3=fR -!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!]` -! -!cLg&V**!!'(R!!%o1!!&nMs+0aX -s8VuM"ektYk.1PC~> -! -!WJ,~> -! -!WJ,~> -! -! -! -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -!g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!ec5[:eH#X?ec5[Jec5[KeH#XBeH#XKeH#Wrec5[>eH5d$ -s8CIJs4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!ec,X:eGoU?ec,XJec,XKeGoUBeGoUKeGoTrec,X>eH,a$ -!<(FJ!7fU"!/f;,!2e]` -!eHGp& -s4,[!s4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!eH>m& -!7fX!!7fU"!/f;,!2e]` -!j%s8W)K!<;`B!<<#Js8W)K -s8VuH!<;uI!<<#J!<;fDrVluMs8UXKrrUaNs8LONs4./LrRLoIq:,NGec,UKec5[LeH>j%s8W#I -#QN?)s8UXLs7t4Cs8LOKs4,X"s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!j%ec5Tu!<;uI!<;uI!<<&K"96p%s8CIJs8LOSs4,["e^a]Ms8CIJs7XtC -s8CIMs4,["rRCoJr7(fIr7(fIr7(fIpXK9Drm_)Mec5Ns!<<&K#636(s4,["p!j'BrRD5Se^a]M -ec41Ms8CIJs8LONs4,["psfHGec5Tu!<:U"!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -!+H -!<(UR!8?-,rRq5Or7V,Nr7V,Nr7V,NpY#TIrn7DRg&V$(!!*#P"p!B2!8?-,p"BBGrRqPXg=cP\ -g&Tj\!<(UO!<1[S!8?-,pt>cLg&V**!!(R'!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!j%ec5Tu!<<&K"96p% -s7k+Gs4./JeH#X"eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!$rr3)Ns8UXKs7k.Cs8LRKs8LRJs8LRH -s8UXLs7b%Hs4./"ec#O!eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -!Ns4RGQp"KEG!8@>Ns4[JQ!nmY.rW!&S!!(aP!;P:H!<1^P!<1^O!<1^M -!<:dQ!;G1M!87G,gAM$&g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT> -]` -! -! -]` -!eH#X%ec#ODec5ZceH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -! -!eGoU%eboLDec,WceGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s,,>,s/+?HKCZ_Us81=M -V#TT>]` -! -!]` -!,s,,>,s/+?HKCZ_Us81=M -V#TT>]` -! -!m&!7fX!!9)H.!/f;,!/f;,!2e]` -!j%s8W&Jrr;rI!<<#Js8VlEs8W#Is8W)K"96pOs7t4Cs8LOK -s5DK.s,,>,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!j%ec5Tu!<<&K$3/Q+s4,["e^a]ueH#XKeH>j%ec5Bo!<<&K#liH*s4,[" -ec5Bo!rpgNrRCoJiRIr.MU__,MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -! -! -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!j%ec5X!#liH* -s4,["ec5Epr;ZcH!<;$.!<7r,!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -! -! -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -!Ns4[JQptG`J!SRPQgA_0QgA_-S -g&M-Jg&qE0!8?0*!92]4!/fJ1!/fJ1!2eKMJb$\Xs81LRU&X9;\c@6~> -!m&!7fWu!92N/!/f;,!/f;,!2e]` -!,s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -!sW8Jc*Cbs81LRU&X9;\c@6~> -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -!o/`_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!"tu!/#j9J\@A_rVuT)s8V63"f21\k.LbF~> -! -!"tu!/#j9J\@A_rVuT)s8V63"f21\k.LbF~> -! -! -! -!!)uB!1`r:s+C-\rVm&OK7gl;s1m1bK7U^e]p?A3s8UXJs8'G/s5qi8SB\a\S,e'~> -!!)u?!1E` -!!)uB!1`r:s+C-\rVm&OK7gl;s1m1bK7U^e]p?A3s8UXJs8'G/s5qi8SB\a\S,e'~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!m9J\@A_s8W,LrIas[s8V63"e -! -!m9J\@A_s8W,LrIas[s8V63"e -! -! -! -! -! -! -! -!0P!.Y~> -! -! -! -! -! -! -! -! -! -! -! -!Tn/ngTrk!g](26hb5SsQR/ha~> -! -!]^8*rOqgI!53s`JcC<$XoIq9rk/B'!<7Q~> -!^m%2rOVUC!4ma]JcC<$XoIq6rji0!!<7Q~> -!cn@drOqgI!53s`JcC<$XoIq9rk/B'!<7Q~> -!\j]"n%A^kJ`_OGJ`a)s!6suG!h98jJ,~> -!^m%2n%&LeJ`_OGJ`a)s!6XcA!gs&gJ,~> -!cn@dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~> -s#C,\S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~> -s$QngR@3TV!1AE#J`_OGXl]W+n[eag!W`9#J,~> -s)S5AS=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~> -">Mnk!!)MYJ\?WJJ\A.unXTUZrr7K~> -r^?bdn -"DW"!!!)MYJ\?WJJ\A.unXTUZrr7K~> -"?A1s0fadbJH16$MZE\TJ,~> -r'Z)9JH16$MZE\TJ,~> -rc8*TF+F=B!.b-.!;ukI~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/note.gif b/lib/et/doc/src/note.gif deleted file mode 100644 index 6fffe30419..0000000000 Binary files a/lib/et/doc/src/note.gif and /dev/null differ diff --git a/lib/et/doc/src/notes.gif b/lib/et/doc/src/notes.gif deleted file mode 100644 index e000cca26a..0000000000 Binary files a/lib/et/doc/src/notes.gif and /dev/null differ diff --git a/lib/et/doc/src/notes.xml b/lib/et/doc/src/notes.xml index 5abab9766c..8611955d3d 100644 --- a/lib/et/doc/src/notes.xml +++ b/lib/et/doc/src/notes.xml @@ -4,7 +4,7 @@

- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + Event Tracer (ET) Release Notes @@ -28,12 +28,50 @@ %VSN% notes.xml
-

This document describes the changes made to the Event Tracer (ET) system - from version to version. The intention of this document is to - list all incompatibilities as well as all enhancements and - bugfixes for every release of Event Tracer (ET). Each release of Event Tracer (ET) - thus constitutes one section in this document. The title of each - section is the version number of Event Tracer (ET).

+

This document describes the changes made to the Event Tracer + (ET) system from version to version. The intention of this + document is to list all incompatibilities as well as all + enhancements and bugfixes for every release of Event Tracer + (ET). Each release of Event Tracer (ET) thus constitutes + one section in this document. The title of each section is the + version number of Event Tracer (ET).

+ +
ET 1.4 + +
Improvements and New Features + + +

Thanks to Olle Mattsson the GUI parts are rewritten to + use wxWidgets. For the time being it is still + possible to use the old GS based version of the tool, + but it is deprecated. The wxWidgets based version is + started by default.

+ +

A print function has been added, in order to enable + printing of sequence charts.

+ +

A new tutorial has been added to the documentation. It is + based on Jayson Vantuyl's article + http://souja.net/2009/04/making-sense-of-erlangs-event-tracer.html.

+ +

The functions et:trace_me/4 and + et:trace_me/5 has been introduced in order to replace + the deprecated functions et:report_event/4 and + et:report_event/5. Hopefully the new names makes it a + little more obvious what the intended usage of the functions + are.

+ +

The max_events configuration parameter to + et_viewer is not used any more. Now the event cache + in the Viewer only contains those events that + actually are displayed in the GUI.

+ +

Own Id: OTP-8058

+
+
+
+ +
ET 1.3.3 @@ -130,8 +168,8 @@
Improvements and new features -

This is the first release of the Event Tracer (ET) as - a stand-alone application.

+

This is the first release of the Event Tracer (ET) as + a stand-alone application separated from the Megaco application.

diff --git a/lib/et/doc/src/part.xml b/lib/et/doc/src/part.xml index d0375ffaf9..627aee866d 100644 --- a/lib/et/doc/src/part.xml +++ b/lib/et/doc/src/part.xml @@ -4,7 +4,7 @@
- 20022009 + 20022010 Ericsson AB. All Rights Reserved. @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + Event Tracer (ET) Users Guide @@ -32,7 +32,8 @@ and provides tools for collection and graphical viewing of trace data.

- + + diff --git a/lib/et/doc/src/ref_man.gif b/lib/et/doc/src/ref_man.gif deleted file mode 100644 index b13c4efd53..0000000000 Binary files a/lib/et/doc/src/ref_man.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans.gif b/lib/et/doc/src/sim_trans.gif deleted file mode 100644 index e3ab0bd3f1..0000000000 Binary files a/lib/et/doc/src/sim_trans.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans.png b/lib/et/doc/src/sim_trans.png new file mode 100644 index 0000000000..0a3a8fdcb5 Binary files /dev/null and b/lib/et/doc/src/sim_trans.png differ diff --git a/lib/et/doc/src/sim_trans.ps b/lib/et/doc/src/sim_trans.ps deleted file mode 100644 index efc48162b7..0000000000 --- a/lib/et/doc/src/sim_trans.ps +++ /dev/null @@ -1,6595 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: (ImageMagick) -%%Title: (sim_trans.ps) -%%CreationDate: (Mon Oct 14 16:45:00 2002) -%%BoundingBox: 0 0 512 426 -%%DocumentData: Clean7Bit -%%LanguageLevel: 1 -%%Orientation: Portrait -%%PageOrder: Ascend -%%Pages: 1 -%%EndComments - -%%BeginDefaults -%%EndDefaults - -%%BeginProlog -% -% Display a color image. The image is displayed in color on -% Postscript viewers or printers that support color, otherwise -% it is displayed as grayscale. -% -/DirectClassPacket -{ - % - % Get a DirectClass packet. - % - % Parameters: - % red. - % green. - % blue. - % length: number of pixels minus one of this color (optional). - % - currentfile color_packet readhexstring pop pop - compression 0 eq - { - /number_pixels 3 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add 3 mul def - } ifelse - 0 3 number_pixels 1 sub - { - pixels exch color_packet putinterval - } for - pixels 0 number_pixels getinterval -} bind def - -/DirectClassImage -{ - % - % Display a DirectClass image. - % - systemdict /colorimage known - { - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { DirectClassPacket } false 3 colorimage - } - { - % - % No colorimage operator; convert to grayscale. - % - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { GrayDirectClassPacket } image - } ifelse -} bind def - -/GrayDirectClassPacket -{ - % - % Get a DirectClass packet; convert to grayscale. - % - % Parameters: - % red - % green - % blue - % length: number of pixels minus one of this color (optional). - % - currentfile color_packet readhexstring pop pop - color_packet 0 get 0.299 mul - color_packet 1 get 0.587 mul add - color_packet 2 get 0.114 mul add - cvi - /gray_packet exch def - compression 0 eq - { - /number_pixels 1 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add def - } ifelse - 0 1 number_pixels 1 sub - { - pixels exch gray_packet put - } for - pixels 0 number_pixels getinterval -} bind def - -/GrayPseudoClassPacket -{ - % - % Get a PseudoClass packet; convert to grayscale. - % - % Parameters: - % index: index into the colormap. - % length: number of pixels minus one of this color (optional). - % - currentfile byte readhexstring pop 0 get - /offset exch 3 mul def - /color_packet colormap offset 3 getinterval def - color_packet 0 get 0.299 mul - color_packet 1 get 0.587 mul add - color_packet 2 get 0.114 mul add - cvi - /gray_packet exch def - compression 0 eq - { - /number_pixels 1 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add def - } ifelse - 0 1 number_pixels 1 sub - { - pixels exch gray_packet put - } for - pixels 0 number_pixels getinterval -} bind def - -/PseudoClassPacket -{ - % - % Get a PseudoClass packet. - % - % Parameters: - % index: index into the colormap. - % length: number of pixels minus one of this color (optional). - % - currentfile byte readhexstring pop 0 get - /offset exch 3 mul def - /color_packet colormap offset 3 getinterval def - compression 0 eq - { - /number_pixels 3 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add 3 mul def - } ifelse - 0 3 number_pixels 1 sub - { - pixels exch color_packet putinterval - } for - pixels 0 number_pixels getinterval -} bind def - -/PseudoClassImage -{ - % - % Display a PseudoClass image. - % - % Parameters: - % class: 0-PseudoClass or 1-Grayscale. - % - currentfile buffer readline pop - token pop /class exch def pop - class 0 gt - { - currentfile buffer readline pop - token pop /depth exch def pop - /grays columns 8 add depth sub depth mul 8 idiv string def - columns rows depth - [ - columns 0 0 - rows neg 0 rows - ] - { currentfile grays readhexstring pop } image - } - { - % - % Parameters: - % colors: number of colors in the colormap. - % colormap: red, green, blue color packets. - % - currentfile buffer readline pop - token pop /colors exch def pop - /colors colors 3 mul def - /colormap colors string def - currentfile colormap readhexstring pop pop - systemdict /colorimage known - { - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { PseudoClassPacket } false 3 colorimage - } - { - % - % No colorimage operator; convert to grayscale. - % - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { GrayPseudoClassPacket } image - } ifelse - } ifelse -} bind def - -/DisplayImage -{ - % - % Display a DirectClass or PseudoClass image. - % - % Parameters: - % x & y translation. - % x & y scale. - % label pointsize. - % image label. - % image columns & rows. - % class: 0-DirectClass or 1-PseudoClass. - % compression: 0-none or 1-RunlengthEncoded. - % hex color packets. - % - gsave - /buffer 512 string def - /byte 1 string def - /color_packet 3 string def - /pixels 768 string def - - currentfile buffer readline pop - token pop /x exch def - token pop /y exch def pop - x y translate - currentfile buffer readline pop - token pop /x exch def - token pop /y exch def pop - currentfile buffer readline pop - token pop /pointsize exch def pop - /Times-Roman findfont pointsize scalefont setfont - x y scale - currentfile buffer readline pop - token pop /columns exch def - token pop /rows exch def pop - currentfile buffer readline pop - token pop /class exch def pop - currentfile buffer readline pop - token pop /compression exch def pop - class 0 gt { PseudoClassImage } { DirectClassImage } ifelse - grestore - showpage -} bind def -%%EndProlog -%%Page: 1 1 -%%PageBoundingBox: 0 0 512 426 -DisplayImage -0 0 -512 426 -12.000000 -512 426 -1 -0 -0 -256 -020202 -0a0a0a -6272a4 -fea602 -fe0202 -bec2be -fefefe -c6c6d6 -424242 -7a86ae -0202fe -bebece -717ace -bebabe -e6e6e6 -42568a -6a72c6 -969296 -6272b6 -5a6e9e -4a464a -969ade -9696d6 -5a6a96 -fefafe -b6baee -2a3662 -323e72 -f6f6f6 -324272 -9696ce -5a6696 -7286c6 -6272ae -969ab6 -e6e2e6 -f6f2f6 -3a4a8a -969ac6 -728ac6 -526297 -626ea6 -7a8bce -42569e -9696be -d6d6d6 -eeeeee -555e9e -828282 -dedade -727eb6 -5a6aa6 -828eb5 -4a528a -3a4a82 -5a6eae -8a92ce -52669e -eeeaee -4a5a9e -6a7ac6 -9ea6d6 -627abe -a6aac6 -a6aade -7982ae -4a5296 -424e96 -7278a6 -a7acce -828ec6 -a6a6de -727ac6 -5266ae -bec2d6 -dedef6 -5a6eb6 -7282ce -6a72bd -8a96b6 -8a9ad1 -5a6aae -969ad6 -808ad6 -cecece -4256a6 -9e9ed6 -969bbe -8a92d6 -d6dad6 -8292c6 -5a5e96 -dedede -6266a6 -7a82ce -8a96d6 -525d8a -757eae -5262a6 -e6e6f6 -3a4e8a -969ed6 -626aae -aeafd6 -9696b6 -6a6e9e -5a66a6 -32427a -7a86bd -f6f6fe -bebed6 -969ace -dedfee -9ea6de -424a7f -6276b6 -b6bade -969ece -7282c6 -424642 -a3a6c6 -8a8eb6 -8296ce -6a72ae -7986ce -626a9e -626eb6 -ced2ee -8286b6 -cfd1e6 -707aae -828ed6 -626ebe -4a5ea6 -424e82 -3a427a -4a5996 -3a4672 -4a569e -8a96c6 -969ede -b6bede -96a2d6 -4a4a4a -d6daee -8292ce -5a6296 -727ab8 -5a669e -5a72be -8a92b6 -626aa6 -9ea2de -6a76a1 -6a6ea6 -7a82b7 -525a9e -eeeef6 -4a5682 -42528a -b6beee -9e9ec6 -d4d6e6 -8a96be -5a66b6 -a6aed6 -6a7ece -6a7fc6 -8286ae -7580a6 -525a96 -5a6ab6 -6a76be -7a82d6 -a6a2a6 -7a8ac6 -eeeaf6 -c6c6ee -9ea1ce -d6d2d6 -7a86c6 -626eae -525eae -8a96de -828ace -e6e6ee -8292de -8a92c6 -c6c2d6 -6276be -6b76ae -435282 -acb5de -828abe -5262af -626e9e -6a7ab6 -727ece -8a92be -9ea2d6 -aeaaae -e6e2f6 -8a92de -9696c6 -828ebe -c6cce5 -3a467a -9e9ebe -828ac6 -4a5e8a -6a72a4 -424e8a -5266b6 -62669e -7a82c6 -96a2c6 -4a5e96 -5a62a6 -9eaad6 -424a8a -7a86d6 -525ea6 -7a8aba -4a56a6 -8a96ce -6a76c6 -425296 -8a8ebe -7282bc -828ece -6272be -828ab6 -626696 -6a7abe -626ab6 -5a66ae -32466a -5a6a9e -5a629e -a7aec6 -727ec6 -e6eaf6 -828aae -e6e2ee -4a5aa6 -d6dae6 -525e96 -727ebe -324672 -dee2f6 -6a7aa6 -bec2e6 -3a4682 -5a6ebe -4a578a -8292d6 -ec89f8ecf800000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -00000089f889f8898787870000060606060606060606060606060606061aa0a0a0a0a0a0 -a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 -a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 -a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 -a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a019191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -191919191919191919191919191919191919191919191919191919191919191919191919 -1919191919191919191919191919191919191919191919c01a0606060606060606060606 -060606060606060606ae0606060606060606060606060606060606060606ae0606060606 -06060606060606060606060000878787ecec0006062d2d2d313131315c5c5c2323230e0e -0e1abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca -bacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca -bacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabaca -bacabacabacabacabaca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca -83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca -83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca -83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca83ca8383838383838383838383838383 -838383838383838383838383838383838383838383838383838383838383838383838383 -838383838383838383838383838383838383838383838383838383838383838383838383 -838383838383838383838383838383838383838383838383838383838383838383838383 -838383838383838383838383838383838383838383838383838383838383838383838383 -838383838383838383838383838383838383838383838383838383838383ba831a0654b3 -b3b32d2d2d313131315c5c5c2323230e0eae0654b3b3b32d2d2d313131315c5c5c232323 -0e0eae0654b3b3b32d2d2d313131315c5c5c23060600ec891d0006b32d2d2d313131315c -5c5c2323230e0e0e231ac5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5 -c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5 -c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5 -c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c548c548c50cc548c50cc548c50cc548c50cc548 -c50c4d48c50c4d48c50cad48c50cad48c50cdc48c50cdc48c50cdc48c50cdc48c50cdc48 -c50c5348c50cb8c5c50cb8c5c50cb8c5c54883c5c54883c5c54883c5c54883c5c54858c5 -c548cac5c548cac5c548cac5c5485fadc5485fadc5485fadc548b7adc50cb7adc5c5b7ad -c5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615adc5a615ad -c5a615adc5a615adc5a68cadc5a68cadc5a68cadc5a68cadc5a68cadc5a68cadc5a68cad -c5a68cadc5a68cadc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc -c5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc -c5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdcc5a68cdc -c5c58cc51a06b3b3b32d2d2d313131315c5c5c2323230e0e23ae06b3b3b32d2d2d313131 -315c5c5c2323230e0e23ae06b3b3b32d2d2d313131315c5c5c2323230e54001d1d00062d -2d2d313131315c5c5c2323230e0e0e3a0e1aac3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c -3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c -3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3cc5464d3c3c3c3c3c3c3c3c3c3c3c3c3c3c -3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c0c3c0c3c3c0c3c0c3c0c3c -0c3c0c3c0c3c0c3c0ca70c3c0ca60c3c0cc50c3c0cc50c3c0c4d0c3c0c4d0c3c0c4d0c3c -0c7c3c0c3cb4a60c3c7ca63c0c53a70c3c53a70c3c53a60c3c53a63c0ce5c53c0ce5c53c -0c58c53c0cffc53c0c38c50c3c58c50c3c5fc50c3c580c0c3c580c0c3c580c0c3c5f0c3c -3c504d3c3c504d3c0c504d3c0c504d3c0c154d3c0c154d3c0c154d3c0c154d3c0c654d3c -0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c654d3c0c8e4d3c -0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c -0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c -0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c0c8e4d3c -0c8e4d3c0c8e4d3c3c98c5e11a06b3b32d2d2d313131315c5c5c2323230e0e0e3aae06b3 -b32d2d2d313131315c5c5c2323230e0e0e3aae06b3b32d2d2d313131315c5c5c2323230e -0e54008900062d2d2d313131315c5c5c2323230e0e0e3a3a231ae1acacacacacacacacac -acacacacacacacacacacacacacacacacacacacacac4b4bacacacacacacacacacacacacac -acacacacacacacacacacacacacacacacacacacacacacac5fb1ac6518067f4b4bacac1c18 -acacacacacacacacacacacacacacacacacacacacacacacacacacacacacace1ace110e110 -e110ac10ac6d1810ac6d1810ac10ac103c10ac104810ac104810ac10c510ac10c510ac10 -c510ac105ee1acb171e1e110b4e1ac10dce1ac10b40cac10b848e110b848e110b848e110 -8348e1108348e110910ce1105848e110580ce1105f48e1105f48e11016c5e11052c5e110 -52c5e11052c5e110150ce1e115c5e1e165c5e1e165c5e1e165a6e1e165a6e1e165a6e1e1 -65a6e1e156a6e1e156a6e1e198a6e1e198a6e1e198a6e1e198a6e1e1984de1e1984de1e1 -984de1e1984de1e1714de1e1714de1e1714de1e1714de1e1475ee1e1475ee1e1475ee1e1 -475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1 -475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1475ee1e1 -475ee1e1475ee1e1475ee1e1475ee1e1475ee1e11a18542d2d2d313131315c5c5c232323 -0e0e0e3a3aae18542d2d2d080808080808080808080e0e0e3a3aae18542d2d2d31080831 -5c5c5c0808230e0e0e3a0d0000062d2d31313108085c5c2323230e08083a3a3a231aeaea -eaeaeaeaeaeaeaeaeaeaeab815eaeaeaeaeaeaeaeaeaeaeaeaeaeaea84907ffceaeaeaea -eaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeab8181e436306 -aa898181fc846d6d1beab815eaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea -eaeaea84847e847e84848484ea6d6d1bea6d6d1b8484841284ea84107e84841084848438 -658484ac8484843c128484481284ea4006d684c5e6847ef04e8484d69aea84d610ea84d6 -10ea845e10ea845e108484b8108484b8108484b810848446e1847e83e1848438e1848438 -e1847ee0e1847ee03c847e5f3c8484163ceaea58e1eaea16e1abea16e1abea16aceaea16 -aceaea1648eaea1648eaea1648eaea1548eaea1548eaea1548eaea1548eaea1548eaab15 -48abea1548abea1548abea56e1eaab56e1eaab56e1eaab56e1eaea5648eaea5648eaea8e -48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e -48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e48eaea8e -48eaea8e48eaea8e48eaea8e48eaea8e48eaea9848eaea98488484ea1a182d2d2d593131 -315c5c5c2323230e0e0e3a3a3aae062d2d2d59080808080808087777080e0e3a3a3aae06 -2d2d2d5908080808315c777708080e0e3a3a0d0000062d31312d080808082323230e0877 -14143a2e231aababababababababababababab6d18f4abababababababababababababab -a451fcfcabababababababababababababababababababababababababababababababab -abab63811b3b1c181bc2c2fcfca46d241bab6d18f4ababababababababababababababab -abababababababababababa451a4aba4aba4aba4ab6d6d1bab6d6d1b51a451a4abab4ca4 -aba484a451a4e66d18dfe6ab51a4bd51aba4ac51aba43c377ff35151aba43ceaaba4c5ea -ababc5eaa4ab7684a4ab76e6a4ab76e6aba4b484aba4b48451a4af84aba4af84aba446e6 -51a446e6aba45ae6ab51914eab51e04eab51e04eabab8b4eabab5facabab5facabab5fac -abab5facabab50acabab50e9a4ab6fe9a4ab6f3ca4ab6fe9a4ab6fe9a4ab75e9a4ab75e9 -a4ab75e9a4ab75e9a4ab75e9a4ab75e9a4ab653cabab8e3cabab8e3cabab8e3cabab8e3c -a4ab8e3ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73c -a4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73c -a4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4abc73ca4ab8ee9a4ab8ec4a4a456ab -1a182d2d313131315c5c5c2323230e0e0e3a3a3a2eae182d2d2d311a0808080808770808 -770e3a3a3a2eae182d2d31b3080808080808080877770e3a3a3a0d000006313131310808 -080808230e77080814142e2e231aa4d4a4d4a4d47c4b189d8ea48d0606067cd4a4d4a4d4 -a4cd065fd4a4c09dc26d18a4d47c4b189d8ea4c0067cd4cd06b4a4cdfba4204b189d8ea4 -d4c9f9c0c9d4a4d4a49106a9fccd060606e96d18a4d46d6d1b8d0606067c7c4b189d8ea4 -d4c9f9c0c9d46d18a4d4a4d4a4d4da631806b0e9d4dab006b0dad449d46d6d1bd46d6d1b -d4204b189d8e49d4da631806b0a78d06060627dab006b0dad412d4f9f974c94938068249 -493e84d449e9fdd4d43c84d4d4a74cd449a784d4d4764ca4497612d4492095d449b412a4 -49afe6d4d4af4ed449e5e649a4e5bdc2c291bdc2c291bdc2c238bdc2c25f73d4d47aacd4 -d4e0bdd4a4e0bdd4a48bbdd4d4e0bdd4d4e0bdd4d4503ed4d4503ed4d4503ea4d4503ea4 -d4503ea4d4503ea4d45093d4d475e9d4d465e9d4d465e9d4d4653ea4d465c4a4d48ec4a4 -d48ec4a4d48ec4d4d48ec4a4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4 -d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4 -d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4d48e3ca4 -d48e3c49d48e3cc21a1c2d313131315c5c5c2323230e0e0e3a3a3a2e2eae1c2d31313108 -08081a0808777708083a3a3a2e2eae1c2d3131313108080808777708080e3a3a3a2e0d00 -0006313131312d080808770808081414142e2e9d311af4b6b6b6b6ea6d9d9abc06337e6d -18f61bdfb6b6b6b6b6bb066e42b6b0456b6d241bea6d9d9abc0633d60696df9d0696df6d -413b6d9d9abc0633b66d064b401bb6b6b674068642126d18601d6d6d1b9c6d241b7e6d18 -60866d9d9abc0633b66d064bda1b63c91bb6b6b6b6a506c94199689fd706cd174a0675b6 -b66d241b9c6d241b5d6d9d694a0633a506f94199680feb6d18602206cd174a06b2c2b66d -06703f6b3206ef424ec2b69c10d9b69ce1d9b6b610d99cb63cd99cb693a4b6b6f7a4b69c -f05db69c765db69c5e5db69cb466b69cb4eab69cafeab6b6b8eab6b6b8eab6b646eab6b6 -46eab69c467eb6b6e312b6b6bb12b6b6bb12b6b6bb12b6b63812b6b6e37bb6b6e37bb6b6 -384eb685384eb685384eb685384eb685384eb6b61e4eb6b61e4eb6b61eacb6b61eacb685 -6facb6b66facb6b66facb6b66facb6b66facb6b66facb6856facb6856facb6856facb685 -6facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb685 -6facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb6856facb685 -6facb6856fac85b66facb6b675acf4b61a1c313131315c5c5c2323230e0e0e3a3a3a2e2e -2eae1c3131313108315c23235c0e0e0e143a3a2e2e2eae1c31313131312d080877080877 -0e3a3a3a2e2e0d000006315c5c5c232308087777140814143a2e24245c1adfdfdfdfdf75 -063f258b06f22b6d6d1be2dfdfdfdfdff485241864f00628256d6d1b6f063f258b06f23b -064a2818b00b5106ce26063f258b06a82b6d18726bfc55dff481061b55f46d6d1b2b6d6d -1bf46d6d1bf46d6d1b26063f258b06a82b6d18726b25f41b1b55dfdff49d06606b43e225 -63069ece49060e25f46d6d1bf46d6d1b52063f648b06a82e06601b2be264556d6d1b6306 -9efceb06b964f46d18ce1be249060764c2f4f47ec2f4f47ec2dff412c2f4f44e49f4f44e -498a8ac449f4f493a4f4f4f0a4f4f4f051f4f47651f4f47651f4f4b4513bf46c33f4f4de -29f4f4d04cf4f4d037f4f4b8668adfd0eadf8ad066df8ad0eadf8ad066df8ad0668af45a -eadff45aeadf3b5a668af4bb668af4bb7e8af4bb7e8af48b7e8adfbb7e8a8abb7e8a3b8b -7e8a3b8b7e8adfbb4cdf8abb4cdf8a8b4cdf8a1e7edf3b6f4cdf3b6f37dff46f37dff46f -37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f -37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f37dff46f -37dff46f37dff46f37dff46f7edf3b6f7edff42612f4f4551a1c31315c5c5c2323230e0e -0e3a3a3a2e2e2e2424ae1c31313131082323230e0e0e3a3a082e2e2e2424ae1c31315c5c -5c230808777708773a3a2e2e2e240d0000065c5c5c2323230e7708081414142e2e242424 -311af4f4f4f43ba50606060606cf436d6d1bf4f4f4f4f4f4f4f48d06f2744b1be26d241b -a50606060606cf43902479a20b6357f31b670606060606a1256d6d1b55f4f4f4f4cd061b -df3b6d241bdf6d241bf46d241bf46d6d1ba50606060606a1256d6d1bdfdfdff4f4f4f4f4 -df06061be28af4f418061b2b3b06066b3b6d241bf46d241ba50606060606cf06061df485 -2bf4626d6d1b18061b2b6a06061b516d6d1b49b6850607fc3bdf7eb6f4df12c2f43b7e62 -f4f41262f4f47b493bf4c4c23b55c4d93bdff7d93bdff75df4dff76af4dfe45d3bdf9beb -3bdf6c33f48a6c37f42bc14c3b8ad07ef4dfd07ef4f4467ef43b467ef43b467ef43b467e -f43b467ef4f4d07ef4f4467ef43b467ef4f4e312f4f4e3123bf4e3123bf4bb123bf48b12 -3bf48b123bf4bb123bf4bb123bf48b12f43b8b123b3b5012f43b6f12f43b1e12f43b1e12 -f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73 -f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73 -f43b1e73f43b1e73f43b1e73f43b1e73f43b1e73f4f41e73f43b1e12dff41e3b1a24315c -5c31ae0808080808141408ae2e2e24242eae24315c5c5c0823230e0e0e3a3a3a8f2e2e24 -242eae24315c5c5c2308770808080814142e2e2e24240d0000065c5c2323230e0e0e1414 -08142e2e2424241c311a8a8a8a8a422606ef1b1b1b1bfc6d6d1b8a8a8a8a8a8a8a423206 -b324c66b2b6d6d1b2606ef1b1b1b1bfca50631b29606f5a51b2606ef1b1b1b1b256d6d1b -428a8a8a8ac0069e2b8a6d6d1b426d6d1b8a6d6d1b8a6d6d1b2606ef1b1b1b1b256d6d1b -8a8a8a8a8a8a8a8a8ab0061f8a428a8a630635426606631b2b6d6d1b426d6d1b2606ef1b -1b1b1bf1061f8a8a42dd3b6d6d1bf10635dd9a06631b3b6d6d1b858a66063f878a662f8a -8ab5dd8a8a29dd8a8a21628a8a7b628a8abe628a8abed98a8a93d98a8a936a8a8a616a8a -8a326a8a8a9b6a8a8a9b5d8a8a9b5d8a8a9beb8a8a805d8a8ac1668a8ac1668a8ac1668a -8ac1668a8ac1668a8acc668a8acc298a8acc298a8acc298a8a46298a8ae3b58a8ac6b58a -8ac6298a8a96b58a8ac6298a8abb298a8a8b298a8a8b298a8a8bb58a8a8b298a8acb212b -8acb218a8a26218a8a26218a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a -8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a -8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a267b8a8a26218a8a26218a -8a269a421a9d5c5c5c2377777777770814148f8f2e2424241cae245c5c5c2308230e0e0e -3a3a3a2e8f2e2424241cae245c5c5c23770877777714141414142e2424240d0000065c23 -23230e0e0e3a3a14142e2e2424241c24311a428a8a8a8a629d18269bbb808a6306d2628a -8a8a8a42428a42b00606d3fc8a6d241b629d18269bbb808ad606060202060699fc629d18 -a19bbbc18a6d241b8a8a8a428a93064143426d241b8a6d241b426d241b426306d2b59d18 -a19bbbc18a6d241b428ab9638a8a8a8a8ab206b9bb9b2666a1064abecd06961b426d241b -8a6d241b629d18a16cbbc1b206b9969b75668a6306d2a5064ac4cd064f1b8a6d241b8a42 -d7067d87669c8a42b59c8a4229b6424229628a429a628a42be628a42be5b8a42c4d98a42 -93d98a4232d98a4232d98a42e4d98a429b6a8a4280338a426c668a42c1668a42c15d8a8a -c1978a8ac1668a8ac1668a8ac1668a8acc298a8accb5428accb5428acc7e428accb5428a -e3b5428ac6b5428ac6b5428ac6b58a8ac6b58a8abbb5428abb7e428a8bb58a8a8b218a8a -8b218a8a8b218a8acb21428acb21428a267b428a267b428a267b428a267b428a267b428a -267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a -267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b428a267b422b -267b422b267b8a8acb7b8a2b1a245c5c2323080808081414141414142424241c24ae245c -5c2323770e0e0e3a3a3a2e2e142424241c24ae245c5c235c087708083a3a1414148f2424 -241c0d0000062323230e0e0e3a3a3a2e2e2e2424241c1c1c311a4242424242427d4a1c06 -b079dbe3241869db424242424242426706071bdb426d6d1b42974a1c06b079db9c061889 -d318066bdb425d4a1c06b079db6d6d1b424242354235a2a2db426d6d1b426d6d1b426d6d -1b42e32418d26a4a1c06b079db6d6d1b4242246d1b42354242424f700618f3e8d3226306 -f1681b87426d6d1b426d6d1b425d4a1c06b0793596700618f3e8dbe32418d2570e06f157 -1b87426d6d1b425b70a21b9c9c42427d9c42425d9c424229f642429add3542699c42427b -5b4242be5b42424492424282ee424282924242619235429b9442429b6a42429b6a424280 -5d4242805d4242a85d4235805d4235805d423580d54242805d4242a8974242807d424280 -974242c17d4242e35d4242e35d4242795d4242e35d4235e35d424279974242e3294242e3 -7d4242797d4242797d4242797d42429629424296294242969a4242966942429669424296 -694242966942429669424296694242966942429669424296694242966942429669424296 -694242966942429669424296694242966942429669424296694242966942429669424296 -69424296694242966942422c7d42352c294242421a2e5c232323ae7708081408148f8fc8 -24241c1c1cae2e5c23232308777708141414148f1424241c1c1cae2e5c230e0e0e7777f1 -3a0e2e8f142424241c1c0d00000623230e0e0e3a3a3a2e2e2e2424241c1c1c18b31a35db -35db353535d3871b1b1bdb35fc1b06060606060606443535ce1b1b3535421a1b3535d387 -1b1b1b7235351b1b35351b1b35353525871b1b1bfc351b1a3535db3535357d242c35d31b -1b35d31b1b35351b1b3535721b1b8625871b1b1bdb351b1bdb35421b1a35db35353535fc -1b1b1b1b2535871b1b1b6b4235d31b1b35421a1b353564871b1b1bdb35fc6b1b1b1bfefe -721b1b866b1b1b1b6b355baa1b1b5b7824d187aa3535d5aa3535d5aa35357d9c35357df6 -db359af63535695b35359a5b3535d25b3535d25b3535445b3535445b3535615b35359392 -353541ee353541d53535a8d535dba8d5db35a8d5353580d5353580d5353580d5353580d5 -353580d5353580d53535e7d5353579d5353579d5353579d5353579d5353579d5353579d5 -3535797d353579693535797d3535797d3535797d35352c7d35352c7d35352c7d35352c69 -35352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c69 -35352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c6935352c69 -35352c6935352c6935352c6935352c6935352c693535c66935db2c351a2e2323230e0e0e -3a3ab02e2e2e2424241c1c1c1cae2e2323230e0e0e3a3a3a2e2e2e2424241c1c1c1cae2e -2323230e0e0e3a3a3a2e2e2e2424241c1c1c0d000006230e0e0e3a3a3a2e2e2e2424241c -1c1c18182d1ad3d335d3d3d3d343d3d3d3d3d335649f0f1b1b1b1b1b1b1bfcd3644243d3 -d39f43d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d364d3d39fd3d3d3d3d3d343d343d3d3d3d3 -d3d39f7dcf25d364d3d3d3644364d3d3d3d3d3d3d3d39fd3d3d3d3d364d3d39fd3d3d3e2 -d342d3d3d3d364d3d3d3d3d3439fd3436443d3d39fd36464d39f43d3d30fd3d3d39fd3d3 -9f8a9f64d38a0f64d3880f9f43aa424343284264d3288878281b9f64d3ee8ad3d3178a64 -d31faa64d3c3d89fd37dd864d302aad36402aad3d3be92d3d39992d3d3999264d34462d3 -d3932fd3d36139d364611fd3d34192d3d34192d3354192d3d34192d3d34117d3d3de17d3 -d3de17d3d3de17d3d3e717d3d3e7edd3d3e717d3d3e717d3d3e717d3d3e717d3d3e71fd3 -d3e71fd3d33417d3d35a1386d39617d3d39613d3d3966964d3c6c364d3966964d3966964 -d39669d3d3967dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3 -d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3 -d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3c67dd3d3967dd3d3967dd3d34f69d335967dd3 -1a3a23230e0e0e3a3a3a2e2e2e2424241c1c1c1818ae2e23230e0e0e3a3a3a2e2e2e2424 -241c1c1c1818ae2e23230e0e0e3a3a3a2e2e2e2424241c1c1c180d0000060e0e0e3a3a3a -2e2e2e2424241c1c1c181818b31a7272368672db86868686863672db86dbdb723672db25 -72db648686368686867286dbdb8686d3868672db8686862586648672db86db868686db72 -64728686db8686dbdb727236728786dbdb8686db7272db25db72db86db86db8686867272 -72dbdbdb6472db7286368636db7286866472db868625867286868686db8672db86db8672 -db7286869f86727235bf8686fe9f7286febf257288bf868660358686f6356472726486db -929e867292fe86861ffe86867dfe72727daa7286c3aa862569aa8672d2aa3686d2603686 -99f67286fa2f368644928672a9287272a9282586415b86db419286724192868641928686 -091fdb86091f8686091f8686091f7286a81f8686f21f8686f21f8686f21fdb86f21fdb86 -f21fdb86f21f8686341f8686341fdb86341786863417648679178686797d8686967d8686 -967d7286967d8686967d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d8686 -4f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d8686 -4f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d86864f7d7272 -4fd53672967d72361a2e230e0e0e3a3a3a2e2e2e2424241c1c1c18181cae2e230e0e0e3a -3a3a2e2e2e2424241c1c1c18181cae2e230e0e0e3a3a3a2e2e2e2424241c1c1c18180d00 -00060e3a3a3a2e2e2e2424241c1c1c1818180606b31af4f4dff43bdfdfdfdfdff4f43bdf -3b3bf4f4f43b3bf43b3bdfdf3bdfdfdff48af43bdff48adfdff43bdfdfdf3bdf8adff43b -df3bdfdfdf3bf48af4f48a3bf4df3b3bf4f4f4df3bdf3b3bf4df3bf4f43b3b3bf43bdf3b -f43bdfdfdff4f4f43b3b3b8af43bf4df3bdf3bf4f4f48adff43bdf8a3bdff4dff4dfdf3b -dff43bdf3bdff43bf4dfdf8adff4f4df3bf4df8af4f4df8af43bf43b3b3bdf3bdff4dfdf -3bdff4f4f48af4dff4dff43bdf3bdfdff48a8a8a3bf4f43b3bf48a8a8af43b8a8a3b3bf4 -3b3b8a8af43bdff43bf4df3b8af48af43bdff48a8af43bdf8a3b8a8a3bf43b8a3bf4f48a -3bdfdf3b3bdf8adf8af48a8a8adf8a8a8a8adf8a8af4df8a8adfdfdf8a8adf8a8adfdf8a -df3bdf3b3b3b8af43b3bdf3bf4f48a8a3bdfdf42df8a42424242424242df42424242df42 -4242424242df4242dfdf4242df42df4242df4242df42df4242df42df4242df4242df42df -4242df4242df42df4242df4242df42df4242df4242df42df4242df4242df42df4242df42 -42df42df4242df4242df42df4242df4242df42df4242df4242df42df4242df4242df42df -42df4242dfdfdfdfdfdfdf8adfdf42421a3a0e0e3a3a3a2e2e2e2424241c1c1c18181806 -06ae3a0e0e3a3a3a2e2e2e2424241c1c1c1818180606ae3a0e0e3a3a3a2e2e2e2424241c -1c1c181818060d000011111111111111111111111111111111111111111a010101010101 -010101010101010101010101010101010101010101010101010100010101010101010101 -010101010101010101010101010101010101010101010101000101010101010101010101 -010101010101010101010101010101010101010100010101010101010001010101010101 -010101010001010101010101010101010101010101010101010101010100010100010001 -010101010101010101010001010101010101010101010101010101010100010101010101 -010101010101010101010101010100010101010101010100010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010100010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -0101010101010101010101010101010101010101010101011a1111111111111111111111 -111111111111111111ae1111111111111111111111111111111111111111ae1111111111 -111111111111111111111111111111000006230e0eae0606060606060606060606060606 -060606060606060606060606060606060606061818181818060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060618060606180606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606ae18230e0d0000060e0e23ae060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -0606060606060606060606060606060606060606060606061830ae060e0e0d0000060e0e -0eae06065959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959593030ae06 -0e0e0d0000060e0e23ae0606595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959593030ae060e0e0d0000060e0e0eae060659595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959593030ae060e0e0d0000060e0e0eae06065959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae0606 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959593030ae060e0e0d00 -00060e0e0eae060659595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959592d -3030ae060e0e0d0000060e0e0eae06065959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959593030ae060e0e0d0000060e0e0eae0606595959595959590000000000 -000000590000595959595959595959595959595959595959595900005959595900000000 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590000000059595959595959590000590000595959595959595959 -595959595959590000595959595959595959595959595959595959595959595959595959 -000000000000000059000059590000595959595959595959595959595959595959595959 -595959595959000059595900005959595959595959000059595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae060659595959 -595959000059595959595959000059595959595959595959595959595959595959590000 -595959590000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595900005959000059595959595959000059000059 -595959595959595959595959595959000059595959595959595959595959595959595959 -595959595959595900005959595959595900005959000059595959595959595959595959 -595959595959595959595959595900005959590000595959595959595900005959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959593030ae060e0e0d0000060e0e -0eae06065959595959595900005959595900005900005959000000005959595959595959 -595959595959590000595900005900005959000000005959000059590000595900005959 -000000005959000059000059595959595959595959595959000059595959595900000000 -595900005900005959000000005959590000000059590000000059590000000059590000 -590000595959595959595959595959590000595959590000590000590000000059590000 -000059590000590000595959595959595959595959590000595959000059590000000059 -590000590000590000595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959592d3030ae06 -0e0e0d0000060e0e0eae0606595959595959590000595959590000590000590000595900 -005959595959595959595959595959000059590000590000590000595900005900005959 -000059590000590000595900005900000000005959595959595959595959595900005959 -595959000059590000590000590000590000595900005900005959000059590000595900 -005959000059000000000059595959595959595959595959000059595959000059000059 -590000595900005959000059000000000059595959595959595959595959000059595900 -005900005959000059000059000000590000595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959593030ae060e0e0d0000060e0e0eae060659595959595959000000000059000059 -000059000059590000595959595959595959595959595900005959000059000059000059 -590000595900005900005900005959000059590000590000005959595959595959595959 -595959590000595959595900005959000059000059000059000059590000590000595959 -595959000059590000595900005900000059595959595959595959595959595900000000 -005900005900005959000059590000595900005900000059595959595959595959595959 -595900000000000000590000595900005900005900005959000059595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959592d3030ae060e0e0d0000060e0e0eae06065959595959595900 -005959595900005900005900000000000059595959595959595959595959595900595900 -595900005900000000000059590000590000590000595900000000000059000059595959 -595959595959595959595959000059595959590000595900005900005900005900000000 -000059000059595959595900005959000059590000590000595959595959595959595959 -595959590000595959590000590000595900005959000000000000590000595959595959 -595959595959595959590000595959000059000000000000590000590000595900005959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959593030ae060e0e0d0000060e0e0eae0606 -595959595959590000595959590000590000590000595959595959595959595959595959 -595959590000000059590000590000595959595959000059000059000059590000595959 -595900005959595959595959595959595959595900005959595959000059590000590000 -590000590000595959595900005959595959590000595900005959000059000059595959 -595959595959595959595959000059595959000059000059590000595900005959595959 -000059595959595959595959595959595959000059595900005900005959595959000059 -000059590000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959592d3030ae060e0e0d00 -00060e0e0eae060659595959595959000059595959000059000059000059590000595959 -595959595959595959595959590000595959000059000059590000595959000059590000 -595959000059590000590000595959595959595959595959595959595900005959000000 -005959000059000059000059000059590000590000595900005959000059000000595900 -005900005959595959595959595959595959595900005959595900005900005959000059 -000000595900005900005959595959595959595959595959595900005959590000590000 -595900005900005900000059000059595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -3030ae060e0e0d0000060e0e0ed706065959595959595900005959595900005900005959 -000000005959595959595959595959595959595959000059595900005959000000005959 -595900005959000059595959000000005959000059595959595959595959595959595959 -595900000000595900000000595900005900005959000000005959590000000059595959 -000059590000000059590000595959595959595959595959595959590000595959590000 -590000595959000059590000000059590000595959595959595959595959595959590000 -595959000059590000000059590000590000590000595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959592d3030ae060e0e0d0000060e0e0eae0606595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959000059595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959593030ae060e0e0d0000060e0e0eae060659595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595900005959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -59595959595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e -0eae06065959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595459545954595954595954595959595959595959595959593030ae06 -0e0e0d0000060e0e0eae0606595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595459595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595954595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959545959595959595459595459595459545959595459545959595959595959595959 -595959545959545959545959595959595959595959595959595959595959595959595959 -5959592d3030ae060e0e0d0000060e0e0eae060659595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595954595959545959595459595954595959545959595459595954595959545959 -595959595959595959595959595954595959545959595459595954595959595959595959 -595459595459545959545954595959595954595459545954595954595959545959595459 -595954595959545959595459595954595959545959595459595954595959545959595459 -595954595959545959595459595954595959545959595459595954595959545959595459 -595959595954595959595959595459595959595959595959595959595959595959595959 -545959545959545959595959595959595959595959595959595959595959595959595959 -5954595959595959595959593030ae060e0e0d0000060e0ef9ae06065959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595954595954595459595959595959595959595959595959595959595959595959595959 -595959595959595959595459545954595459545959595959595959595959595959595959 -595459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595459595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959592d3030ae060e0e0d0000060e0e0eae0606 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595954595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959593030ae060e0e0d00 -00060e0e0eae061c59595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595954595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959592d -3030ae060e0e0d0000060e0e0eae0606303030303030303030303030303030303030a930 -3030a930a93030a930a930fa30303030a930303030303030303030303030303030303030 -30303030303030303030303030a93030a93030a9303030a93030a930fa30303030a93030 -303030303030303030303030303030303030303030303030303030303030303030303030 -3030303030a9303030fa3030a93030fa3030a930fa303030a93030303030303030303030 -3030303030303030303030a9303030a9303030a9303030a930fa30303030a93030303030 -303030303030303030303030303030a9303030a9303030a93030a93030a93030a930a930 -30a93030a930a93030a930a93030a930a93030a930a93030a930a93030a93030a93030a9 -303030a93030a930a93030a930a93030a930a93030a930a930a93030a930a930a93030a9 -3030a93030a930a930a930a93030a93030a930a930a930a93030a930a93030fa30a93030 -a930a93030a930a93030fa3030a930a93030fa3030a930a93030fa3030a930a93030fa30 -30a930a93030fa3030a930a93030fa3030a930a93030fa3030a930a93030fa3030a93030 -a930a93030a930a93030a930a93030a93030a93030a93030a93030a93030a930303030a9 -3030a930a930a93030a93030a930a930a93030a93030a930a93030a93030a93030fa30fa -303030a9303030303030ae180e0e0d0000060e0e0eae0630303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030ae060e0e0d0000060e0e0eae59592d2d2d2d -2d2d2d54592d2d2d2d2d2d2d2d5459595959595959595959595959592d54592d54592d2d -2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d54595959595959 -595959595959595959545954592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d -2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d54595459595959595959595959595959 -5954592d2d2d2d2d54592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d545959595959595959 -595959595959545954592d2d2d54592d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5459595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959592d5459592d2d2d2d2d2dae060e0e0d0000060e0e -0ed759595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959ae06 -0e0e0d0000060e0e0eae2d59595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959545959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959ae060e0e0d0000060e0e0e22595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595959595959595959595954595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959ae060e0e0d0000060e0e0e2259595959595959595959595959595959595959545959 -595959545959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595459595959595954595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959ae060e0e0d0000060e0e0e22595959595959 -595959595959595959595959595959595959595959595459595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -595954595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959545959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959000000000059595959595959595459590000 -595959595959595959000059000059595959595900005959595959595959595959595959 -595959595959595959595959000059595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595954595959595959595959595959595959ae06 -0e0e0d0000060e0e0e225959595959595959595959595959595959595959595959595959 -595959595959595959595954595959595959545959545959595459595959595959595959 -595959595959595959595959595959595959595959595959595954595959595959595959 -595959595459595959545959545959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954595959595900005959000059595959 -595959595959000059595959595959595959595900005959595959590000595959595959 -595959545959595959595959595959595959595900005959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959ae060e0e0d0000060e0e0eae59595959545954595954595959591c1c1c1c -1c1c1c1c1c1c1c5959595959595959000000000000595959595959595959595959595959 -595959595459595459595959595959595959595959595959595959595959595959595959 -545959545959545959595959595959595959595959595959595959595459595459595459 -595959595959595959595959595959595959595959595954595959595959595959590000 -595959000059590000000059590000000059590000000059590000590000595959595959 -000059595959590000000059590000595959000059590000000059590000595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959545959595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e0e0ed759595959595959595959 -595959591c061c061c061c061c1c30595959595959595900005959595959545959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959000059595900005900005959000059590000595900005959000059000059 -000059595959595900005959595900005959000059000059595900005900005959000059 -000059595959545959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595954595954595959545959545959595459595954595459 -545959595459595459595459595459595954595959595459595959545959595959595959 -59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959 -5959595959595959595959591c0659595959595959303059595959595959590000595959 -590000590000590000000059595900000000595900000000005959000000005959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595900005959590000590000595900005959000059595959 -595900005900005900005959595959590000595959590000595900005959000059000059 -590000595900005900005959595959595954595954595959545959595459595459595459 -595459545959545959595959595959595959595959595959595959595959595959595959 -595954595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595954595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595954595959595959595959595959595459595959595959595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595906065959595959595930305959595959 -595959000059595959000000000000005959000059000059590000595959590000590000 -595900005959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590000595959000059000000000000 -595900005959590000000000590000590000595959595959000059595959000000000000 -595900005900005959000000000000590000595959595959595959595959595959595959 -595959595959595959595959595959595459595954595959545959595459595954595459 -595459595954595959595959545959595954595959545959595459595954595959545959 -595459595959595959595459545959595959595959595959595959545959595959595954 -595959595959595459595959595959545959595959595954595959595959595459595959 -595959545959595959595954595959595959595954595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959590606595959595959 -593030595959595959595900000000005900000059590000595900005900005959000059 -595900005959000059590000595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959000059595900 -005900005959595959590000595900005959000059000059000059595959595900005959 -595900005959595959595900000059595900005959595959000059595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959545954595959595959595459545959545959595459595959 -595459545959595959545954595959595954595459595959595459545959595959545954 -595959595954595459595959595459545959595959545959545959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954595959595959595959595959595459 -59595959595959595959d7060e0e0d0000060e0e0ed75959595959595959595959595959 -060659595959595959303059595959595959590000595959590000595959000000000000 -590000000000005959590059595900000000000059595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595900005959000059590000595900005959000059000000595900005900005900005959 -595959590000595959590000595900005959590000005959590000595900005900005959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595906065959595959595930305959595959595959000059595959000059 -595900005959595959000059595959595900005959590000595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590000000000595959590000000059595959000059590000005900 -000000590000595959595959000000000000590000000059595959590059595959590000 -000059590000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e -0ed75959595959595959595959595959061c5959595959595930fa595959595959595900 -005959595900005959590000595900005900005959000059000059595959000059590000 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959545959595959595959595959595959595959595959595959ae06 -0e0e0d0000060e0e0eae59595959595959595959595959591c0659595959595959303059 -595959595959590000595959590000595959590000000059595900000000595900000000 -005959000000005959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954595959 -595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c3030 -303030303030305959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959545959595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959545959595959595959ae060e0e0d00001c0e0e5cd75959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595459595959595959595959595959595959cd5959595959cd595959 -595959cd5959595959595959595959595959595954595959595959595959595959595954 -595959595959595959595959595959545959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959ae060e0e0d0000060e0e5cd759595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595954595959cd5959595959cd595959595959 -cd5959595959cd595959595959cd595959cd595959595959545959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595954595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595459595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959590100595959590100010059595901000100 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959595959595959595959595959 -595959595459595959595959595959595959595959595959595959595959595959545959 -595959595959595959545959595959595959ae060e0e0d00001c0e0e0ed7595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959595959595959595959595959545959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590000000159595900005959 -000159000059590001595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595459595959595959595959595959595959 -595959595959595959595959595959595459595959595959595954595959595959595959 -595954595959595959595959595459595959595954595959595959595959595959595900 -005959590000595900005900005959000059595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959ae06 -0e0e0d00001c0e0e59d75959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959545959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590000595959000059590000590000595900005959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959545959595959595959595959595959595959595959595959595959595959 -595959595959ae060e0e0d0000060e0e2eae595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959545959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595954595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959000059595900005959000059000059590000595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e5c0e2259595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595459595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595900005959590000595900005900 -005959000059595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959545959595959595959595959 -59595459595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959 -5959595959595959595959591c1c1c1c1c1c1c1c1c1c1c59595959595959590000595959 -000059000059595959590000595959595959595959595959590000000000015959595959 -595959595959595959595959595959595959595959595959590100010001000100595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595459595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590000595959 -000059590000590000595900005959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59cd59595959595959595959595959595959595959545959595959595959ae060e0e0d00 -001c0e0e0ed759595959595959595959595959591c1c061c1c1c1c1c061c305959595959 -595959000059595900005959595959595959000059595959595959595959595959000059 -595959595959595959595959595959595959595959595959595959595959595959595959 -000059595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959000059595900005959000059000059590000595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959591c06595959595959 -593030595959595959595900005959590000590000595900005900005959000000005959 -595959595900005959595900005901005901000001595901590100015901000159595959 -5959595959595959000059595959010000015959595959595959cd595959cd5959595959 -595959595959595959595959595959595959595959595959595459595959595959595959 -595959595959595959595959595959595959595954595954595959595959595959595959 -595959595959595959595954595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595900005959595900000000595959000000005959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959ae060e0e0d00001c0e0e0e4f5959595959595959595959595959 -06065959595959595930a959595959595959590000595959000059000059000059000000 -590000595900005959595959590000595959590000000000000059590000590000595900 -005959000159595959595959595959590000595959000059590001595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595459595959595959595959595954 -5959595959545959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -cd5959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595906065959595959595930305959595959595959000000000000005900 -005900005959000059000059590000595959595959000000000059000000595900005959 -000059000059590000595900005901010000000059595959000059595900005959000059 -59595959595959595959595959595959595959595959cd59595959595959595959595959 -595959595959545954595959595959545954595959545959595954595959595959595959 -595959595959595959545959595959545954595459595459595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd5959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959545959595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959590606595959595959593030595959595959595900 -005959590000590000590000595900005900000000000059595959595900005959595900 -005959590000595900005900005959000059590000595959595959595959595900005959 -590000595900005959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959545954595959595959595959595959595959 -595959595959595959595959545959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959cd59595959cd -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595954595959595959595959595959 -595959595959595959595959595959595959545959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959ae06 -0e0e0d0000060e0e0eae5959595459595959595959595959060659595959595959303054 -595959595959590000595959000059000059000059590000590000595959595959595959 -590000595959590000595959000059590000590000595900005959000059000000000000 -595959590000595959000059590000595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595954595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959cd59595959595959595959 -595959595959595959595959cd5959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959055959 -590559595959595959055959590559595905595959055959595905595959055959595959 -595959595959595959595959595959cd5959595959595959595959595959595959595459 -595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c5959 -595959595930305959595959595959000059595900005900005900005900000059000059 -590000595959595959000059595959000059595900005959000059000059590000595900 -005959595959595959595959000059595900005959000059595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959545959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959590606595959595959593030595959595959595900005959590000590000595900 -005900005959000000005959595959595900005959595900005959595900000000595900 -005959000059590000595959595959595959595900005959595900000000595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -a930a93030a93030a93030a930303030a93030a930fa3030fa3030a930a93030a93030a9 -30a93030fa3030fa3030a930a93030a93030a930a930fa30fa30fa30fa30fa30fa30fa30 -fafa3027fa30fa27fafa30273027fafa30fa30fa27fafa30fa30fa3027fafafafafafafa -fafafafafafafafafafafafafa30273027fafafafafafafafa30273027fafafafafafafa -fafafafafafa30fa30fa30fa30fa3030303030fa30303030303030303030303030303030 -3030fa3030fa30fafa30fafa595959595959595959595905595959595959590559595959 -595959055959595959595905595959595959590559595959590559595959590559595905 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959061c30303030303030303059595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595930303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -30303030303030303030303030303030303030f159595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959ae060e0e0d00 -00060e0e5cae595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959593030050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05050505050505050505050505050505050505050505050505050505050505051c1c0606 -060606061c0618181c061c061c06061c1c1c1c1c1c1c1c1c2e1c2e1c5959595959595959 -595959595959055959595959595905595959595959590559595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959ae060e0e0d00001c0e0e0ed759595954595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959303005050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050606060606060606060606060606060606060606061c1c1c1c1c1c1c1c301cf1 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959cd595959595959595959595959595930300505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505060659595959595959595959595930065959595959595959 -5959595930301c1c59595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959ae060e0e0d00001c0e0e0ed7595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959cd59595959 -595959593030050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050506065959595959595959595959593006 -59595959595959595959595930301c2e5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959cd595959595959595959595959595959595959595959 -595959595959595959595959303005050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050606595959595959 -595959595959300659595959595959595959595930301c1c595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959ae06 -0e0e0d00001c0e0e0ed75959595959595959595959595959595959595959545959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -595959595959595959595959595959595959595930300505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0606595959595959595959595959300659595959595959595959595930301c2e59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959543030050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050506065959595959595959595959593006595959595959595959595959 -30301c1c5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -5959595959595459595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595954595959595959595959595959 -59595959595959595959cd59595959595959595959595959595959595959595959595959 -303005050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050606595959595959595959595959300659595959 -595959595959595930301c2e595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -59595959595959595959595959595959595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595954595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595930300505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505060659595959595959595959 -5959300659595959595959595959595930301c1c59595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959ae060e0e0d00 -001c0e0e59d7595959545959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd59595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595930fa050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050506065959 -59595959595959595959301c59595959595959595959595930301c2e5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -59595959595959595959595959595959595959595959cd59595959595959595959595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959591c1c1c1c1c1c1c1c -1c1c1c595959595959595900005959590000590000595959595900005959595959595959 -595959595900005959590000595959595959595900005959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959303005050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505051c06595959595959595959595959300659595959595959595959595930301c1c -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595459595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -1c1c061c06060606061ca959595959595959590000595959000059595959595959590000 -595959595959595959595959590000595959000059595959595959590000595959595959 -595959595959595959595959595954595959595959595959595959055959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595930300505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050606595959595959595959595959301c5959595959595959 -5959595930301cf159595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959ae060e0e0d0000060e0e0eae595959595959 -59595959595959591c065959595959595930305959595959595959000059595900005900 -005959000059000059590000000059595959595959000059595900005900005900005959 -000059590000590000590000595959000000005959000059590000595901015901015901 -015959595959595959595959595959595959595959595959595959595959595954595959 -595959593030050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050506065959595959595959595959593006 -59595959595959595959595930301c1c5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959590606595959595959593030595959595959595900 -005959590000590000590000590000005900005959000059595959595900005959590000 -590000005900005900005900005959000000590000590000595900005900005959000059 -590000590001015901015959595959595959595959595959595959595959595959cd5959 -595959595959595959595959303005050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050606303030303030 -303030303030301c30303030303030303030303030301c2e595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959ae06 -0e0e0d0000060e0e0eae59595959595959595959595959591c0659595959595959303059 -595959595959590000000000000059000059000059590000590000595900005959595959 -590000595959000059000059590000590000000059595900005959000059000059590000 -595900005900005900005959000059590000595959595959595959595959595959595959 -595959595959595959595959595959595959595930300505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0630303030303030303030303030303030303030303030303030303030301c1c59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959595959ae060e0e0d00001c0e0e59d75959595459595959595959595959061c5959 -595959595930fa5959595959595959000059595900005900005900005959000059000000 -000000595959595959000059595900005900005959000059000000005959590000595900 -005900005959000059590000590000590000595900005959000159595959595959595959 -59595959595959595959595959595959595959595959595959595959fa301c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c2e1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c1c1c -1c1c1c1c1c1c06060606060606060606060606060606061c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1cf15959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -5959595959595959595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959590606595959595959593030595959595959595900005959590000590000590000 -595900005900005959595959595959595900005959590000590000595900005900005900 -005959000059590000590000595900005959000059000059000059590000595900005959 -595959595959595959595959595959595959595959595959595959595959595959595959 -301c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c2e1c1c2e1c1c2e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c0606060606060606060606060606060606060606060606060606 -060606060606060606061c1c595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959061c59595959595959303059595959595959590000595959 -000059000059000059000000590000595900005959595959595900005900005959000059 -590000590000595900005900005959000059000059590000595959000059590000595959 -0000595900015959595959595959595959595959cd595959595959595959595959595959 -545959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959590559595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595906065959595959595930305459595959 -595959000059595900005900005959000059000059590000000059595959595959590000 -000000595900005959000059000059595900000000595900005959000000005959595900 -005959000059595900005959000059595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595905595959595959595959595959590559595959595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595459595959 -5959ae060e0e0d00001c0e0e0ed75959595959595959595959595959061c303030303030 -303030595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595905 -595959055959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd59595959595959595959595959cd5959595959 -59595959595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959055959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959ae060e0e0d00001c0e0e59d7595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59fa30fa30fa30fa3030a930fa30fa30a93030a9595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -5959595959595959593030303030303030303030303030303030301c595959595959ae06 -0e0e0d00001c0e0e0ed75959595459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959593030050505050505053005050505050505061c -595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595930300505050505051c3005 -0505050505051c06595959595959ae060e0e0d00001c0e2e59d759595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959055959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505051c3030050505050505061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959303005050505051c1c30300505050505050606595959595959ae060e0e0d00 -001c0e0e0ed7595959595959595959595959595959595959595954595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595954595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959055959595959595959595959595905595959595959595959 -59595959595959595959595959303005050505051c1c5930300505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595954595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959595959595459595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959055959595959595959595959595959595959593030050505051c1c59593030050505 -05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -595954595959595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595459595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595930300505050506 -1c5959593030050505050606595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505051c1c595959593030050505050606595959595959ae060e0e0d00001c0e0e -0ed759595459595959595959595959595959595959595959595459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959593030050505061c59595959593030050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595954595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959303005051c0659595959595930300505050606 -595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959 -595959595959595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959545959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595930300505061c5959595959 -595930300505061c595959595959ae060e0e0d0000060e0e59ae59595959595959595959 -595959595959595959595959595959595959595459595959595959595959595959595954 -595959595959595959545959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959040459595959595959595959595904045959595904045959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959045959595959595959595959595959595904 -595959595959595959595959595959595959595959595959595959595959595959545959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959080559595959 -595959595959595959595908045959595959595959595959595959080459595959595959 -595959595959595959595959595959590559595959595959595959595959595959303005 -1c065959595959595959303005050606595959595959ae060e0e0d00001c0e0e0ed75959 -59595959595959595959590303595903030303590303030303590303590303cd03030359 -cd0303595903035903030303035903030359595959545959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959045959595959595959595959595904595959595904595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590459595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959b354085959595959595959595959595959cd -045959595959595959595959595959595959595959595959595959595959595959595959 -5959595959303005061c5959595959595959593030050606595959595959ae060e0e0d00 -00060e0e0eae5959595954595959595959595959035959035959037f59037f59037f0359 -7f59035959037f5903597f037f03597f59037f59037f5903595959595959595459595459 -595959595954595459595959545959595954595959595954595459545959595959595959 -595959595959595959595959595959595959595959595959595905595959590404cd0459 -590404cd0404595959595959595959040404595904040459595959040459595959590459 -595959590459595959595959595959595959595959595959595959595959595959595959 -545959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590404590459590459040459595959040459595959040404595959040459 -595904045959595959595959595904040404590404590459595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959590804cd08545908540408545959590804cd -595959080404cd59590404595959080459595959595959595959592d04595959590804cd -5959590804cd595904590804595959080459595908540408045959595959595959595959 -5959595959595959595959595930301c0630303030303030303030303005060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959590359590359590303 -5903595903035959595903035903595903595903590359035903595903037f0359595459 -595959595959595954595459595959595959595959595459595959595459595959595959 -59545959595959595959595959595959cd59595959595959055959595959595959595959 -5959cd045904590459590459cd04595959595959595904595959597f0459590459590459 -5904595959cd0459595959cd045959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595904cd04590459cd04595904595904595904595904cd -595959595959045959595959045959595959595959597f0459597f04cd04590459595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595954045904590454590454 -5904595904595408595904cd595959595959045959545905085959595959595959595959 -045959590459540859590459590459590454045959590459cd04592d590459cd59595959 -595959595959595959595905595959595959595959303006303030303030303030303030 -3030061c595959595959ae060e0e0d0000060e0e0eae595959595959595959595959597f -03595903595903590303595903590359595903590303595903595903590359037f035959 -035903035959595959595959595959595959595959595959545959595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -595959595959595959595904590459045959045959045959595959595959590404595959 -04cd59045959040404595959595904595959595904595959595959595959595959595959 -595959595959595959595954595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959045904590459590459cd045959 -040404cd595959040459595959cd0459595904040459595959595959595959047f595904 -59047f045959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595904 -7f0459045959045959045959040404b35959590404595959595904595959040404595959 -595959595959595904cd5959045959045959045959595959040459595959040404595959 -540459595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959 -595959595959595903595903595903595903595903595903595903595903595903595903 -595903590359595903595903595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595904cd045904595904595904595959595959 -5959cd59590459590459590459cd04595904595959590459595959590459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959597f0459045904 -59590459590459cd045959045959595959045959595904595904cd5904595959595959cd -595959045959040459047f04595959595959595959595959595959595459595959595959 -595959595905595959595959595959595959595959595959595959595959055959595959 -595959595959590459045904595904595904cd59045959045959595959045959cd590459 -590459590459595959595959595959590459595904595904545904595904597f04590459 -59cd04595904595959045959595959595959595959595959595959595959595959595959 -593030060606061c1c061c061c0606060606061c595959595959ae060e0e0d0000060e0e -0eae595959595959595459595959595959030359590303595903590303037f5903030359 -5903597f5903035959590359035959030359590359595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959045904590404595904 -045959595959595959590404045959040404590404595904045959590404040404590404 -040404595959595959595959595959595959595959595459595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959590459047f0404040404590404595904045959590404047f59590404040404590404 -590459595959595959595959040459045904590404595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959047f04590404040404590404595904045959590404 -045959590404040404590404cd04595959595959595904040404047f5904045959595904 -04595904047f040459595904045959590404040459595959595959595959595959595959 -59595959595959595930301c06060606060606060606060606300606595959595959ae06 -0e0e0d00001c0e0e0ed7595959595959595959595959595959597f59597f5959597f5959 -59595959595959595959595959597f595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd59597f0459595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959545959595959595959595959595959595959595959590559595959595959590559 -5959595959595959595959595959595959595959595959595959597f597f595959595959 -5959cd595959cd59595959595959597f5959595959595959595959595959595959595959 -597f595959597f595959595959595959595959597f595959595959595959595959595959 -595959595959595959595959595959595930300606595959595959595959595930300606 -595959595959ae060e0e0d0000060e0e59ae595959595959595959595959595959595959 -595959595959595959595959597f59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590404595959590404040404045959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959597f595959597f59595959595959 -5959595959595959597f5959595959595959590404040404045959595959595959595959 -595959595954595954595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590404040404 -0459595959595959595959595959595959595959595959595959595959595959595959cd -595959595959595959595959595959595959595959595959593030060659595959595959 -5959595930300606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -597f59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5905595959595959595959595959595959595959595959cd595959597f59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd59595959595959cd5959595959595959595959cd59595959595959597f59595959 -597f59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd5959cd59595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303006 -0659595959595959595959593030061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959597f5959cd5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300606595959595959595959595930300606595959595959ae060e0e0d00 -001c0e0e0ed7595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59cd59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -5959595954595959595959595930300606595959595959595959592d3030060659595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959cd5959595959595959595959595959595959595959 -595959595959595959595959595959595459595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595954595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959545959303006065959595959595959595959 -30300606595959595959ae060e0e0d00001c0e0e59d75959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -595959595959595959595959595959595959595959055959590559595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959055959595959595959595959595959595959593030061c595959 -595959595959592d3030061c595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd595959cd595959cd595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595905595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300606595959595959595959595930300606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595905 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd595959cd595959595959595959595959595959cd5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959592d3030061c595959595959595959592d30300606595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959cd595959595959595959595959 -59595959595959595959595959595959cd5959595959cd59595959595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959cd595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300606595959595959595959595930300606 -595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd595959cd595959cd595959cd595959cd595959595959cd595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd595959595959595959595959595959595959595959cd -59595959cd59595959595959cd5959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959592d3030061c59595959595959 -5959592d3030061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -5959595959cd59595959595959595959595959595959595959595959595959595959cd59 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959cd59595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595954595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959055959595959595959595959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303006 -06595959595959595959595930300606595959595959ae060e0e0d00001c0e0e0ed75959 -5959cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959cd59595959cd59595959 -59595959595959595959595959595959595959595959595959595959595959cd59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959592d3030061c595959595959595959592d30300606595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd59595959cd595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959055959 -595959595959595959595959593030060659595959595959595959593030060659595959 -5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959 -59595959595959595959595959595959cd59595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -5959595959595959595959595959cd5959595959595959595959595959cd595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959592d3030061c595959595959595959592d -3030061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959cd5959595959 -595959595959595959595959cd59595959595959595959595959595959cd595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300606595959 -595959595959595930300606595959595959ae060e0e0d00001c0e0e0ed75959595959cd -5959595959595959595959595959595959cd5959cd5959cd595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -2d3030061c595959595959595959592d30300606595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959cd595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300606595959595959595959595930300606595959595959ae06 -0e0e0d00001c0e0e0ed75959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959cd59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959595959cd -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595459595959595959592d3030061c595959595959595959592d3030061c -595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959cd5959595959595959595959595959595959595959595959cd5959595959595959 -5959595959595959595959595959595959595959595959595930300606303030a9303030 -3030303030300606595959595959ae060e0e0d00001c0e0e0ed759595959595959cd5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959595959595959595959cd5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959592d30301c -30303030303030303030303030300606595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd59595959595959595959595959cd595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c590e0ed7595959595959595959595959595959595959595959595903595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd5904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -5959595959595959595959595959595959cd595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -59035959595959595959595959595959595959cd59595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904cd5959595959595959595959595959595959cd045959 -595959595959595959595959595959045959595959595959595959595959595959595959 -595959045959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5904cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959cd5959595959595959595959 -595959595904595959595959595959595959595959595904595959595959595959595959 -59595959595959595959cd04595959595959595959595959595959595959595959595959 -595959595959595959cd59595959595959595959595959595959595959595959cd045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595905595959595959595959cd595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e59ae595959595959 -595959595959cd5959595959595959595903595959595959595959cd5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959590404045959040404045959040459595959045904040459040404045959 -595959595959590404595904045904045959040404045959590404595959045904040459 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd5959595959595904595959595959595959595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c2e0e -0ed7595959595959595959595959595959595959595959597f0359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959cd5959595959595904cd5959595959045959cd5959cd0459595959045959 -59cd5904cd5959595959595959590459590459cd0459cd0459595904cd59595904cd5904 -5959cd0459cd595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959055959595959590559595959595959595959595959595959 -5959595959595959cd5959595959595959595959595959cd590459595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -595959595959595959595959595959595959595959595959595959595959595959595459 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959 -59cd59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595904045959595904595959590404 -04595959cd045959595959045959595959595959595904cd5904595904595904cd595904 -59595959040404cd59595904595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959590459595959cd595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959055959590559595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959cd5959595959595959595959595959 -5959595959595959595959595959595959590559595959595959595959595959cd595959 -595959595959595959595959595959595904595959595959595959595959595959045959 -590459590404595904595959590459595959590459590459595959595959045959045959 -045959045959590459590459045959045959590459595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd04595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd045959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -595959595959595959595959595959595959595959595959543030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -5959595959595959595959595903cd595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595904040459595959590404595904045904595904040404595959590404595959595959 -595959040459595959040459045959590404cd5959040459595904040404595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -5904595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -5959595959595959595959595904595959595959cd595959595959cd5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959cd595959cd595959cd595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59cd595959cd595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959cd5959595959595959595959595959595959595959595959 -5959595959595959cd5959040404040404cd595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959 -5903595959595959595959595959595959595959595959595959595959cd5959cd5959cd -5959cd5959cd595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959cd5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959cd5959 -595959595959595959cd5959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959c8595959595959595959595959595959595959595959cd59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595904595959595959595959cd59595959 -5959595959595959595959595959595959595959cd595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd0459cd595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e59d7595959595959 -59595959595959595959595959595959590359595959595959595959595959595959cd59 -5959595959595959595959595959595959595959595959595959595959595959595959cd -595959595905595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd04595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595901015959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595459595959595959595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959cd5959595959595959595959595959 -5904595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590100010159595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959055959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -5959595959595959593030050505050505058d050505050505050606595959595959ae06 -0e0e0d00001c0e0e0e4f59595959595959cd595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -5959cd5959595959595959595900000101010159cd045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959590559595959595959590559 -59595959cd5959595959595959595959cd59595959595959595959595959595959045959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -54595959595959595959595959595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0ec8595959595959595959595959595959595959 -5959595959035959595959595959595959cd595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595901010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101000000000000000001010104595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e0e0e4f59595959595959595959 -59cd5959595959595959595959c859595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -5959595959595959595959595959595959595c5959595959595c59595959595c59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595900000000000059 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959540859595959595959595959595959595959595959595959 -595959595959595959595959595959cd5959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959 -5959595959595959595959595959595959595959590359595959595959cd595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590000005959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd5959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959055959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595900005959595959595904595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -5959cd595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd595959cd59595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595904cd595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595905595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005ef0505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -595959595959595959c85959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959cd59595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd045959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595959595959595959 -595959595959595959595959595959595954595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e59ae595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd5959595959595959595959595959045959cd595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959cd5959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -59595959595959595959cd5959595959595959595959595959595959595959595959597f -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -5959cd5959cd595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -5959595959595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595905595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505058d05050505050606 -595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959 -5959595959c8595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd590459cd59595959 -cd5959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959055959595959595959595959cd59595959595959595959595959595959595959 -59595959590459595959cd5959595959595959595959595959cd59595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595930fa050505050505050505 -0505050505050606595959595959ae060e0e0d0000060e0e59ae59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959597f0459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5904595959595959595959cd595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd59595959590459595959595959595959595959595959595959595959 -59cd59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959545959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959545959595959 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595905 -595959595905595959595959590559595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e59d7595959595959595959cd595959595959595959595959 -59c859595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959597f045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595904cd59 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -cd5959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595905595959595959595959595959590559595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595459595959595959595959595959595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0ed759595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959045959595959590459595959590404595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd0459595959595959595959 -5959595959595959595959595959595959cd595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959 -595959595959595959595959055959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -5959595959595959595959cd595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595904595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959055959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959597f04595959595959595959595904590404595959 -590404595904590459040459595959595959040404045959590404595959590404045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -59595959595959595959595959c859595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -59590459cd04595904595904590459045904595959595959595959045959595959590459 -595904595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595905595959595959 -05595959595959595959595905595959595959595959cd59595959595959595959595959 -5959595959595959595959595904595959595959595959cd595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595954595959595959595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959 -5959595959595959cd595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -5959595959595959595959595959595959595959cd595959595959595959595959045959 -595959595959595959590459590459590404047f59045904590459595959595959595904 -595959595959045959590459590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd595959595959595959595959595959595904cd59595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959593030050505050505c005050505050505050606595959595959ae060e0e0d00 -001c0e0e2e4f5959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595905595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -595959595904595959595959595959595959045959047f59045959045959047f04595959 -595959595959590459590459597f04595959045959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959cd5959595959595959595959595908595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd0459595959595959595959590404045904045959040459 -5959045904595959595959597f59595904047f5904040404047f590404cd045959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959590559595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e590ed75959595959595959595959595959 -5959595959595959590d59cd595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd595959595959595959045959cd5959595959595959597f59 -59595959595959597f59595959595959595959595959597f59595959595959cd59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595954595959595959595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -cd5959595959595959595959597f59595959595959595904040404040459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595904cd5959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595959595905595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595954595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0e4f59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595905595959595905595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -59045959595959595959595959595959595959595959595959597f5959597f597f597f59 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd595959cd595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959cd0459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0ec85959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959cd595959cd595959cd595959cd5959595959595959595959 -5959595959595959595959595959595959595959590459595959cd595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959590459cd -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959 -5959595959c8595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959055959595959595959595959595959cd59595959595959595959595959 -595959595959595959595959595959597f04595959595959590000595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -cd5959595959595959595959595959595959595959595959595959595408595959595959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959010000005959 -595959597f59595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c2e590e4f5959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595905595959595959595959595959595959595959595959 -59595959595959595959cd59595959595959595959595959595959595959595959045959 -000000000000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -595959595959cd5959595959595959595959595954085959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959545959595959595959545959 -595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed759595959595959cd59595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595900000000000000000000000000000000000000000000010000010000010000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000100010000010001000100010001000100010000010000010001010000010001010101 -010101010101010101010101010100000004595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959590559595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959 -590d59595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595905 -5959595905595959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959590459590000000000595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595905 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595900000000595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595904cd59595959595905595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959 -5959595959595959595959595959595959c8595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -0559595959590559595959595959595959595959595959595959595959595959595959cd -595959595959595959595959595959595959595959595959595959595904595959595959 -590000595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959055959595959 -5959595959595959595959595959595959595959595959cd595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595954595959595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904cd595959595959590559595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959055959595905 -595959595959595959055959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c2e590e4f59595959595959595959595959595959595959595959590d5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959cd5959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959592d085959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eae595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959cd5959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595459595959595959595954595959593030050505050505050505 -8d05050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -59595959595959595959595959c859595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959055959595959 -595959590559595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959cd5959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959 -595959595959595959595959595959595959595959035959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595904cd59595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd59595959595959595904cd59595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c2e592e4f5959595959cd5959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959597f595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959055959595959595959055959595959595959595959595959 -595959055959595959595959590559595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -595959595959595959c85959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd5959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959545959595959595959592d085959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595954085959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930fa0505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959595959590559595959595959590559595959590559 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595905595959595959595959595959cd59595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed75959595959595959595959595959595959595959595959c859595959595959595959 -595959595959595959595959055959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -595959595959595959595959590459595959595959595959595959595959055959595959 -595959595959595959595905595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595905595959595959595959595959595959595959590559595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -5959595459595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959055959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959597f59595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595904cd59595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -055959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959055959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e0e0e4f595959595959595959595959595959595959 -5959595959c8595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959cd59595959595959cd595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -595959545954595954595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -59595959595959595959595959595959595959595959595959595959595959cd59595959 -59595959cd04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5905595959595959595959595959595959595959595959595930fa050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959045959595959595959595959595959595959595959595959595959595959595959 -595959590459595959045959595959595959595959595959595959040459595959595959 -59595954595959040459595959595959595959595959595959595959cd59595959595959 -590459595959595959595959595905595959595959055959595959595959595959595959 -595905595959595959595959055959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595905595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595959595959595959595959595959595959595959595959595959590559595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959cd59595959595959597f045959 -595959595959595959595904595959595959595959595959595959595959595959595959 -59595959595959595959595959595959590459595959595959595459595954595459597f -045954595954595959595959595959590459595959595959595959595959595959595959 -595959595959595954085959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -055959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959590559595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595954 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959055959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595905595959595959595905595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5459595959047f5959595959595959595959040404045959045904040404045904045959 -595959595904590459040459045904040459590404595959040404045959590404595959 -595959595959595904595959590404595959590404595959045904045959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959055959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959590559595959595905595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930300505050505050505058d0505050505060659595959 -5959ae060e0e0d00001c2e592e4f59595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959045959595959595959595959597f04597f59597f04597f -597f04597f0459595959595959045904590459597f0459597f59597f045959597f04597f -5959047f5904595959595959595959590459595904595904595904595904595904590459 -595959595959595959595959595959595959595959595959590459595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -59595959595959595959cd5959595959595959cd59595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595905 -59595959595959595959595959595959595959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959045959595959595959595959595904 -59595959590459595959045959045959595959597f047f047f0459595904595959595959 -0459595959045959595904040459595959595959595959590459595904597f0459590459 -7f59597f0404595959595959595959595959595959595959595959595959595959045959 -595959595959595959595905595959595959055959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595459595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959 -5959595959595959595959595959595959c8595959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595905595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959597f04595959595959 -5959595959597f045959045959045959595904597f045959595959595959045904595959 -5904595959595959045959597f0459590459045959045959595959595959595904595959 -045959045959045959045959047f04595959595959595959595959595959595959595959 -595959cd5904595959595959590559595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595905595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959cd5904595959595959055959595959595959595905 -595959595905595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959055959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959590404595904040404595959040459595959595959 -5959047f0459595904040404595904040404045959590404597f59040459595959595959 -595904040404045959040459595959040459590404590404595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595905595959595959595959595905595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595459595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e0e59d75905595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595905595959595959595959595959595959595905595959 -595905595959595959595959cd5959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959597f59597f597f5959595904 -7f5959595959595959595959595959597f597f595959597f597f59595959595959595959 -7f595959595959595959597f597f595959597f5959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959055959 -595959595959595959595959595959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959595959597f04595959595959595959595959595959595959 -595959595904045959595904040404040459595959595959595959595959595959595959 -595959595959595959595904040404040459595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959055959595959595959595959595959595959595905595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -59595959595959595959595959597f5959595959597f59597f5959595959595959595959 -59595959595959595959595959595959595959595959597f595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959590559595959595959595959595959595905595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59cd59595959595959595959590459595959595959590559595959595959055959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959055959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595904cd59595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595904cd59595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959 -595959595959595905595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595905595959595959 -5959595959595959595959cd595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959595959595959595959595959595408595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959055959595959595959 -055959595959595959595905595959595959055959595959595959595959595959595959 -59cd59595959595959595959595959595959595901015959595959595408595959595959 -595959590559595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd0459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd59595959cd595959595959595959590459595959595959595959 -595905595959595959595959595959595905595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959cd59595959595959590000000159595959 -590459595959595959595959595959595959595959595959595959590559595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e0e4f5959595959595959595959595959 -595959595959595959c85959590559595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595905595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd59595959cd595959595959595959045959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959597f5959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959055959595959595959595959595905595959 -595959595959595959590559595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959cd5959595959595959595959595959 -590000000000005959045959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959545959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595959595959595959595903595959595959595959055959595959595905 -595959595959595905595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595900000001000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000100010001000001000100010101000101010001000100 -000000000001010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010100000000000000000000000004595959595959595959595959595959595959 -595959590559595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595905595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959045c59f9595cf95cf95cf95cf95cf95cf95cf9590e0ef9 -5cf95cf95cf95cf959f1590e0ef95cf95cf95cf95cf959f1590e0ef95cf959f1590e0e5c -f95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf95cf959f959f9595c59f959 -5c595c595959595959595959595959595900000000000059590459595959595959595905 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -59595959595959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959590559595959595959595959590559595959 -595959595959055959595959595905595959595959595959595959595959595959055959 -5959595959595959595959595959595959595959595959cd595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959000000595959595904cd59 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505058d05050505050606 -595959595959ae060e0e0d00001c0e590e4f595959595959595959595959595959595959 -5959595959c8595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595900005959 -595959595908595959595959595959595959595959590559595959595959595959595905 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e2e0eae59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959540459595959595959595959595959055959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f5959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595905595959 -595959595905595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0eef595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959590559595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595905595959595959595959590559595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959 -590559595959595905595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959055959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -540859595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959035959595959595959595959595959595959590559595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959592d045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959 -5959595959595959595959595959595959c8595959595959595959595905595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595905595959595959595959595905595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959597f04595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959590559595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595905595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c2e592e4f5959595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -055959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eae595959590559595959595959595959595959 -595959595903595959595959595959595959590559595959595959595959595959595959 -595959590559595959055959595959595959055959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959055959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -595959595959595959595959590559595959595959055959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959055959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -59595905595959595959595959595959595959595459595959595959595959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959597f59595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959597f045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959590559595959055959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959597f5904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595459595959595959595959595408595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959055959595959 -595959595959595954595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959595959595959590559595959595959595959595959595959595959 -595905595959595905595959595959595959055959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959047f595959595959595959595959595959595959595959 -595959595959595959595959595959045959595959595959595959590404595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595459595459595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -2d0459595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595930300505050505050505058d050505 -05050606595959595959ae060e0e0d00001c592e59d75959595959595959595959595959 -595959595959595959c85959595959590559595959595959595959595959595959595959 -595959590559595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959597f04595959595959595959595959 -7f0459595959595959595959595959595959595959595959595959595959595959545959 -59545959595959595959595959595959595954595959595959595959595959597f045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959590559595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930fa0505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959545959595904595959595959 -595959595959590404590459045904040459040459595904590404595959040404045959 -590404595959590404045959595959595959595959595959595959595959595959595459 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -545959595959595959595959595959595904595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959595959595959595959590559595959595959590559 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -7f0459595954595959595459597f04597f047f597f04597f597f597f0459597f04597f04 -59597f047f59597f04597f04595904597f04595959595959545959595459595954595959 -545959545959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959597f0459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959540859595959595959595959 -595959595905595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959590559595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959590459590459595904595959590404 -0459595904595904595959045959595904040459597f0459590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959592d045959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e0e0e4f595959055959595959595959595959595959 -5959595959c8595959595959595959595905595959595959595959595959595959595959 -595905595959590559595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595905595959cd59595959595959cd5959595959 -595959595959595959595959595959595904595959595959595959595959045959045959 -590459595904597f0459597f04595904595959045959045904597f045959045959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959545959595930fa050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959040404595904040404595904045904590404047f0404597f590404597f59040459 -595959040459045959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5904cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e59d75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -055959595959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595905595959595959595959055959595959595959595959595959 -595959595959595959595959595959cd5959595959595959595959595959595959045959 -5959595959595959595959597f0459597f597f595959597f595959595959595959595959 -5959595959595959595959597f59cd595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959595959cd -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959055959595905595959595959 -595959595959595905595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0eae595959595959595905595959595959595959595959595903595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959055959595959590559595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959597f04595959595959595959595959040404595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959592d04595959595959 -595959595959590559595959595959595959595959595959595959590559595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904595959595959595959595959597f5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959cd5959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959590559595959595959 -59595959595959595959595959595959545959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595905595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -5959595959cd595959cd5959595959cd59595959cd595959595959595959cd595959cd59 -5959cd595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959 -5959595959595959595959595959595959c8595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959055959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -590000595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904cd595959595959595959595959595959595959595959595959595959cd59 -5959595959595959595959595959595959595959cd5959cd5959cd5959cd5959cd595959 -cd59595959595959595959595959595959595959595959cd595959595959595959595959 -595959595959595959595959595959595408595959595959590559595959595959595959 -055959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eae59595959595959595959595959595959595959595959590359595959595959595959 -595959590559595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959000000005959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959cd59595959595959595959595959595959595959595959cd59 -59595959595959cd595959cd5959595959595959595959592d0459595959595959595959 -595959590559595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505058d05050505050606595959595959ae06 -0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959055959595959595905595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959597f59045959000000000000595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959cd595959595959cd595959cd5959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959cd59595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595459595959595959595959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595900000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000001010000000000 -010100000101000000000000010000000100000100000100000000010000010001010101 -010101010101000101010100010101010001000100010101010100010101000101010001 -010100010001000101010101010101010101010101010101010101010100010000010000 -010000000100000100010001000100000001010000000100010000010000000000000000 -000000000004cd5959595959595959590559595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c2e590e4f59595959595959595959 -595959595959595959595959590559595959590559595959595959595959595959055959 -595959595959595905595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd5959595959595959cd59595959595959590459590000000000595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959c85959595959595959595905595959 -590559595959595959595905595959595959595959595959590559595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959045959 -595900000000595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959590000595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595408595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0ed759595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595905595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c2e592e4f5959595959595905595959595959 -595959595959595959c85959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959055959595959590559595959595959 -055959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0eae595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959595959595959595959590559595959595959595959 -590559595959595959595959595959595959055959595959595959595959055959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959540859595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -59595959545959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959 -595959595905595959595959595959595959595905595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -59cd59595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959592d045959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c2e592e4f595959595959595959595959595959595959 -5959595959c8595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f04595905595959595959595959595959595959595959055959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595905595959 -595959055959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -595959595959595959595959595959055959595959590559595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -545959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595905595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930300505050505050505058d0505050505060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595905595959595959595959595959 -590559595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959597f590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eae5959595959595959595959595959 -595959595959595959035959595959595905595959595959595959595959595959055959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959055959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0e4f595959595959 -5959595959595959595959595959595959c8595959595959595959055959595959595959 -595959595959595905595959590559595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f04595459595959595959595959595959595959595959595959595959595959 -595959595959595954595959595954595459595459545954595459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595408595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959590a0a595959595959595959595959595959595959 -595959595959595959595959595959595959595959590a595959590a5959595959595959 -595959595959595959595959595959595459595959595959595959595959595959595959 -595959595959595959595959590459595954595459545959545954595954595959595459 -545959545959595459595954595959595959595959595959595959595959595959595959 -595954595959595959545959595959595959595959595959595959595959595959595959 -5959595959595959595459595959595959595959595959592d0459595959595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e2e594f5959595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595905595959595959055959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -595959595959595959045959595959595959595959595959590a59595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959590a -595959595959595959595959595459595959595959545959595959595959595959595959 -59595959595959595959595959595959595959597f045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959545959595959595959595959545959595959595459595959 -59595459595959595959595959595959595959595959595959595959595959597f045959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595954595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e592eef595959595959595959595959595959595959 -595959595903595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595905595959595959595959595959595959595959 -5959595959595959595959597f59595959047f5959595959595959595959590a0a0a5959 -590a0a595959595959595959590a0a595959590a0a59590a0a590a59590a0a590a595959 -590a0a5959590a0a0a0a5959595954595959595959595959595959595959595959595959 -595959595959595959595459595959595959545959545959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959545959545959595959595959595959595959595959 -595959595904595959595959595959595959055959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e2e594f59595959595959595959 -595959595959595959595959590559595959595959595959055959595959595959055959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -59595959595959595959595959595959595959595959597f590459595959595959545959 -59590a59590a59590a59590a59595959545959590a59590a59590a59590a590a590a590a -590a590a590a595959590a595959590a5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959540859590559595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959590559595959595959 -05595959595959595959595959595959595959595959595959595959595959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eef5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959590a59590a59590a59590a59595959595959590a59595959590a59 -590a590a590a590a590a590a590a595959590a595959590a595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959592d045959595959595959595959595959 -595959595959590559595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f045954595959595959595959590a59590a59590a59590a5959595959595959 -0a59590a59590a59590a590a590a590a590a590a590a595959590a595959590a59590a59 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eae59595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904595959595959595959595959590a0a590a59590a0a59 -5959595959595959590a0a595959590a0a59590a590a590a0a0a590a590a0a590a0a0a0a -0a5959590a0a595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959cd59595959595959595959 -590459595959595959595959595959595959590559595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959 -595959595959595959c85959595959595959595959590559595959595905595959595959 -595959595959595959595959055959595959595959055959595959595959595959595959 -055959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595954085959595959595959595959055959595959595959595959590559 -595959595959595959595905595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959545959595930fa0505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e592ed7595959595959 -595959595959595959595959595959595903595959595959595905595959595959595959 -595959595959595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595904595959595959 -59595959595959595959595959595959590a0a0a0a0a0a59595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959592d04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e2e -59d759595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959c85959 -595959595959595959595959590559595959595905595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959597f045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595930300505050505050505058d05050505050606 -595959595959ae060e0e0d00001c0e2e59d7595959595959595905595959595959595959 -5959595959c8595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959590559595959590559 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595408595959595959590559595959590559595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959545959595930fa050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e592ed759595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -cd5959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd5959cd59595959 -5959595959595959595959592d0459595959595959595959595959595959595959595959 -595959595959590559595959595905595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959 -595959595959595959595959595959595959595959c85959595959595959590559595959 -595959595959595959590559595959590559595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959cd5959cd595959cd5959595959595959595959595959cd595959 -59595959595959597f045959595959595959595959595959595959595959595959595959 -5959cd59595959595959595959595959595959595959595959cd59595959595959cd5959 -595959595959cd595959cd59595959595959cd595959595959595959595959cd59595959 -59595959595959595959595959595959595959597f045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0eae595959595959595959595959595959595959595959595903595959595959 -595959595959595959590559595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959cd595959cd595959595959595959595959595959cd595959cd5959 -5959595959595959595959595959595959047f5959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -cd5959595959595959cd595959595959595959595959cd59595959595959cd5959595959 -5959595959595959595959595959595959cd595959595959595959595904595959595959 -595959595959595959595959595959055959595959595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959590559595959595959595959595959055959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -540859590559595959595905595959595959595959595959590559595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959590559595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -59595959595959595959cd59595959595959595959045959595959595459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd595959595959cd595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959 -5959595959595959595959595959595959c8595959595959595959595959595959595959 -595905595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595459595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -595959597f04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595954595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959595959 -595959595959590559595959595959595959595905595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -590459595959595959595459595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959590559595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e2e594f5959595959595959590559595959595959595959595959c85959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959cd5959595959595959595959595959 -595959595959597f59045959595959595959595959595959545959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e592eef595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959545959595959595959 -595959595959595959595959595959595959595959595959595959595959595954595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904cd59595959cd -595959595959cd595959595959595959595959595959595959595959595959595959cd59 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959592d04595959595959595959055959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c2e590e4f59595959595959595959 -595959595959595959595959590559595959595959595905595959595959595959595959 -595959595959595959595959590559595959595959595959595959055959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959597f0459595959595959595959 -595459595959595459595959595959595959595459595959595459595959595959595959 -545959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959590559 -595959595959055959595959595959595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e2e0eae5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -055959595959590559595959055959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959545959545959545959595959545959595959 -545959545959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959590459595959595959595959595959595959cd595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505058d05050505050606595959595959ae060e0e0d00 -001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959590559595959595959595959595959 -59595959595959595959595959595959595959595959cd59595959595959595959595959 -595959597f04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959cd5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd59595959595959595959595408595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -5959595959595959545959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e2ed759595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959cd5959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -2d0459595959595959595959055959595905595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e59d75959595959595959595959595959 -595959595959595959c85959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595959595959595959595959595959595959595959 -59595959cd5959595959cd5959595959595959595959cd59595959595959595959595959 -59595959595959597f045959055959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e2ed7595959595959 -595959595959595959595959595959595903595959595959595905595959595959595905 -595959595959595959055959595959595959055959595959590559595959055959595905 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -5959595959cd595959595959595959595959595959595959595959595959595959595959 -59595959590459cd59595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -59d759595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -7f0459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959cd5959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959595959595959595959595959540859595959595959595959 -595959595959590559595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595954595959 -59595959595959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e2ed75959595959595959595959595959595959595959595959035959 -595959595959595959590559595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959590559595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959545959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e0e59d7595959595959595959595959595959595959 -5959595959c8595959595959595959595959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959595959597f04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd59595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959055959595905595959595959595905595959595959595905 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eae59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959040459595959595959595959595959595959595959 -5959595959595959595959595959cd045959595959590459595959590404595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959 -595959595959595959595959595959595959595959c85959595959590559595959595959 -595959595959595959595905595959595959595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959597f045959 -595959595959595959595959595959595959595959595959045959595959595959595959 -595959595959595959595959595959595959595959595904595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959595959595959595954085959595959595959595959595959 -595959595959595905595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959590559595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -595959595904595959595959595959595959045904040459590404595959595904595959 -59040459595904045959595959040404cd59590404595959595959595959040404045959 -59040459595959040404cd59595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959592d04595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959055959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -5959595959595959595959597f04595959595959595959595959590459cd59590459cd04 -5959597f0459595904595904595959cd04595959047f595959cd04595904595959595959 -5959cd045959595959cd045959cd04595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -7f0459595959595959595959595959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eef5959595959055959595959595959 -595959595959595959c85959595959595959590559595959595959595959595959595959 -595905595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959047f59595959595959595959595904 -595959590404045959595959045959cd0404047f59590404045959595904045959590404 -045959cd5959595959595904595959595959045959590459590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -59cd595959595959595959595959595959cd595959cd5959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959055959595959595959595959595959595905 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e2e594f595959595959 -5959590559595959595959595959595959c8595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959590559595959055959595959 -595959595959595905595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959590459595959045959045959595904595959045959045904597f04595959 -595959045959047f59045959595959595959590459590459595904595959045959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd04595959595959595959cd5959cd5959cd59595959595959595959595959cd -5959cd595959cd595959595959cd595959cd5959595959595959595959595959cd595959 -5959595959595959595959595959595959595959cd595959595959595959595959595959 -595959595959595959595959595959595408595959595959595959595959595959590559 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595459595959595904040404595959040459595904040404045959040459 -5959040459047f5904040459595959040459595959595959595959590404cd5904040404 -04595904045904cd59595959cd5959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd5959595959cd59 -59595959595959cd5959cd5959595959595959cd5959595959cd59595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959055959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505058d05050505050606595959595959ae06 -0e0e0d00001c0e2e59d75959595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595959595959595959595959595959595905 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959cd5959 -595959595959595959045959595959595959cd595959597f595959595959cd5959595959 -7f5959595959597f59595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959cd59595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd595959595959595959595959595959595959cd59595959595959595959cd045959 -595959595959595959595959595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -59595959545959595959595959595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e592ed7595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904cd5959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595904 -0404040404595959595959595959595959cd595959595959595959595959595959595959 -cd5959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e0e0ed759595959595959595959 -595959595959595959595959590559595959595959590559595959595959590559595959 -590559595959595959595959595959595959055959595959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -5959cd5959595959595959595959cd595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959cd595959595959cd595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959595959cd -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959540859590559595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595905595959595959595959595959595959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0ed75959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595905595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -59595959595959595959595959597f595959595959595959595959595959595959595959 -59595959595959595959cd59595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e0e0ed75959595959595959595959595959595959595959595959c8595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959045959595959595959595959595959595959595959597f5959595959595959 -5959597f5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd595959595959595959595959595959595900005959595959595904595959595959 -595959595959590559595959595959590559595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595954595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0ed759595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -5959595959597f59595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959cd59595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959590000000059595959 -590459595959595959595905595959595959595905595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e0ed75959595959595959595959595959 -595959595959595959c85959595959595959595959595959595959595905595959595959 -595959595959595959595959595905595959595905595959595959595959595959055959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959cd59595959595959590459595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590000000000005954085959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930fa0505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595959595905595959 -595959595959055959595959055959595959590559595959595959595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959cd59595901000001000001 -000000010100000000000000000000000000000000000000000000000000000000000000 -000100010101010101010101010101010101010101010101010101010001010101010101 -010101010101010101010101010101010101010101010101010101010001010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010100010001000100 -000100000000000000000000000000000004595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c2e59 -0ed759595959595959595959595959595959595959595959590559595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595900000000000059590459595959595959595959 -595959595959595959595959595959055959595959595959590559595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -5959595959595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0eae5959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959000000595959595904cd59 -595959595959595959590559595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e2e59d7595959595959595959055959595959595959 -5959595959c8595959595959595905595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595900005959 -59595959b308595959595959595959595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959545959595930fa050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0ed759595959595959595959 -595959595959595959595959590359595959595959595959595959595905595959590559 -595959595905595959595959595959595959590559595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959592d0459595959595959595959595959595959055959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595905595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595459595959595959 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595905595959595959595959595959595959595959595959595905595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959cd5959595959595959595959595959 -5959597f5904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930300505050505050505058d0505050505060659595959 -5959ae060e0e0d00001c0e2e59d759595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959590559595959595959590559595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -540859595959595959595959055959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959545959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959592d045959595959595959595959595959595959055959595959595959 -595905595959595959595959055959595959595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959 -5959595959595959595959595959595959c8595959595959595959595959055959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959597f04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595905595959595959595959595905595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e2e594f5959595959595959595959595959595959595959595959c85959 -595959055959595959595959595905595959595959595959595959595959595959595959 -595959595905595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -055959595959595959595959595959595959595905595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0eef595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595905595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959597f04595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959592d04595959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e2e594f59595959595959595959 -595959595959595959595959590559595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959cd5959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959055959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eef5959 -595959595959595959595959595959595959595959035959595959595959595959055959 -595959595959595959595959590559595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959597f59045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595459 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -590559595959595959595959595959595959595959055959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e0e0e4f5959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f04595959595959595959595959595959595959595959595959595959595959 -595959595959595959595954595459545959595459595459545959545959545959595959 -545959545959545954595459595954595954595459545954595459545954595954595959 -595959595959595959595959595959597f04595459595954595959545959595459595954 -595959545959595459545954595459595459595459595954595459595459545959595459 -595954595959595954595954595459595459595954595959595459595959595959595959 -595959595959595959595959595959595959595959595959595959595408595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e0e0eef59595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595905595959595959595959595959 -055959595959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959590404595959595959 -595959040459595959595959595959045959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959045959595959590459595959595459595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959545959595954595959595959595959595959595959595959595959595959595959 -2d0459595959595959595959055959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e0e594f5959595959595959595959595959 -595959595959595959c85959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd5959595959595959045959595959595959595959595959 -7f045959595959595959597f045959595959595959595904595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595904595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959055959595959595905595959595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e2eef595959595905 -595959595959595959595959595959595903595959595959595959595959055959595959 -595959595959595959595905595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959597f04595959595959 -595959595959590404045959590404595959595904595959590404595959040404045959 -590404595959595959595959040404045959045904040459040459595904590404595959 -5904040459590404595959595904045959590404040459595904045959595904047f5904 -7f0404595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959545959 -595954595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505058d05050505050606595959595959ae060e0e0d00001c0e0e -594f59595959595959595905595959595959595959595959590559595959595959595959 -595959595905595959595959590559595959595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959590559595959595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595904597f04595904597f04595959590459595904597f04 -59597f045959595904595904595959595959595959045959595959045959595959590459 -59590459590459590459595959595959045959590459590459597f047f595959597f0459 -595904595904595904597f04590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959545959595959595959595959540859595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -59595959545959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e2eef5959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959055959 -595959595905595959595959590559595959055959595959590559595959595959595959 -5959595959595959595959595959595959595959595959595959595959cd595959595959 -5959595959595959590459595959595959595959595904595904597f040404595959597f -04595959040404595959590459595959040404595959595959595959590459595959cd04 -595959590404045959590459590459595904045959590404045959590459595959595904 -5959595959590459595904597f045959045959047f045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595954595959595959595959595959595959592d045959 -595959595959595959595959595959595959055959595959595959595959055959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e2e594f595959595959595959595959595959595959 -5959595959c8595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959045959045959 -04595904595959590459595904597f0459597f0459590459047f59045959595959595959 -590459590459590459595904597f0459595904595904595959597f045904595904595959 -045959045959590459590459595904595959045959045959045959045904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f04595905595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e592eef59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -5959595959595959595959595959595959595959595959597f0459595959595959595959 -597f59040459047f59040459595904040404047f5904045959595959040459595904047f -5959595959595959cd590404595904040404595904045904590404047f04045904040459 -7f5904045904597f59040459595959590404595904040404045959040459590404045904 -040459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959055959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e2e59d75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595959595959595959590559595959055959595959595959595959595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -5959595959595959595959597f59595959597f59595959597f5959595959595959595959 -597f59595959595959595959595959595959595959595959597f595959595959597f5959 -595959597f5959595959597f5959595959597f595959595959cd59597f597f597f595959 -7f595959597f59597f045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595459595959595959 -595959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959055959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904040404040459595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959592d04595959595959 -595959055959595959595959595959595959595959595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959 -590559595959595959595959595905595959595959595959595959595959595959595959 -595959595959595959595959055959595905595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -59595959cd59595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959597f59595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595459595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595905595959595959 -595959595959055959595959595959590559595959595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959590559595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed7595959595959 -5959595959595959595959595959595959c8595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -cd5959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595900005959 -595959597f04595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959cd595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959055959595959 -595959595959595959595959595959595959595905595959595959595959595959590559 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930fa050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0ed759595959595959595959595959595959595959595959590359595959595959595959 -595959595905595959595959590559595959595959595959595959590559595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590000000059595959590459cd5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959cd595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595904cd595959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505050505050505050606595959595959ae06 -0e0e0d00001c0e0e0ed75959595959595959595905595959595959595959595959c85959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959590559595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959590459cd595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959597f5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590000000000005959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd595959cd59595959 -59cd59595959595959595959595959595959595959595959595959595959595959085959 -595959055959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -59595959595959595959595959595959593030050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959 -595959595903595959595959595959595905595959595959595959595959595959595959 -595959055959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595900000100000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000004595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd595959595959cd59595959595959595959595959595959595959595959 -595959cd5904595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959 -595959595959595959595959590559595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd59595959595959595959cd595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595900000000000059 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959590459595959595959590559595959055959595959595959 -595959595959055959595959595959595905595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959545959595930fa05 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e0eae5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959590559595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590000005959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595959cd59 -5959595959595959cd59595959595959595959595904cd59595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959545959595959 -595959595930300505050505050505058d05050505050606595959595959ae060e0e0d00 -001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959590559595959595959595959595959595959 -59595959595959595959595959cd59595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595900005959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959592d08595959595959 -595959595959595959595959595959590559595959595959590559595959595959595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e592ed759595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595905595959595959595959 -590559595959055959595905595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959047f595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -540459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959 -595959595959595959c85959595959595905595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -5959cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959055959595959595959595959 -595959595959595905595959590559595959595959595959595959595959595959595959 -595959595959595959595905595959595959595959595959595959595930fa0505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd59595959595959595904595959595959595959055959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e0e -0ed759595959595959595959595959595959595959595959590559595959595959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -055959595959595959055959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959cd5959cd5959595959595959595959 -595959595959cd59595959595959595959cd595959cd5959595959595959595959595959 -5959cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959540859595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595954595959593030050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959597f0459595959595959595959595959cd -595959cd5959cd5959cd59595959595959cd5959cd59595959595959595959595959cd59 -595959cd5959cd595959595959cd59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959 -5959595959c8595959595959595959055959595959595959595959595959055959595959 -595959595905595959590559595959595959595959595959595959595959595959595959 -595959595959595959055959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959590559595959595959595905 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595930fa050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0ed759595959595959595959 -595959595959595959595959590359595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959590559595959595959595959 -595959595959595959595959055959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505050505050505050606595959595959ae060e0e0d00001c0e0e0ed75959 -595959595959595959cd5959595959595959595959055959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959590559 -595959595959055959595959055959595959595959595959595959595959595959595959 -595959595959595959595959cd5959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959597f045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959055959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -59595959593030050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0ed75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959595959595905595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959cd59595959595959 -597f59595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959592d04595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e0e0e4f59595959595959595959595959595959595959595959 -59c859595959595959595959595959595959595959590559595959595959595959595959 -055959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -595959cd5959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959597f59595959595959597f0459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595959595959595959595959595959595959595959 -590459595959590559595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959545959595930fa05050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eef5959595959595959595959595959 -595959595959595959035959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959595959cd5959595959595959595959 -595959595959595959045959595959595959595959590559595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e2e594f595959595959 -5959595959595959595959595959595959c8595959595959595959595905595959595959 -595959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595408595959595959595959595959595959595959 -595959595959595959595959595959590559595959055959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -593030050505050505050505050505050505061c595959595959ae060e0e0d0000060e0e -0eef59595959595959595959595959595959595959595959590359595959595959590559 -595959595959595959595959595959595959055959595959595959595959595959590559 -595959595959595905595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959590a0a595959595959 -5959595959595959595959595959590a5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904cd595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959592d0459595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930300505050505050505058d05050505050606595959595959ae06 -0e0e0d00001c0e0e0e4f5959595959595959595959595959595959595959595959c85959 -595959595959595959595959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959595959595959 -59595959595959597f045959595959595959595959595959595959595959595959595959 -590a5959595959595959595959595959595959595959590a595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595459595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959590559595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595905595959595959595959595959595959595959590559 -595959595959595959595959545959595930fa050505050505050505050505050505061c -595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959 -595959595903595959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595905595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959545959595904595959595959595959595959590a0a59590a -590a0a595959590a0a0a5959595959595959590a0a59590a0a590a0a59590a0a0a0a5959 -590a0a5959590a590a0a0a59595959595959595959595959595959595959595959595959 -5959595959595959595959595459595959595959cd595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -0505050505050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959 -595959595959595959595959590559595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959597f0459595959545959595459 -59590a59590a59590a59590a59590a59590a59595959595959590a59590a59590a59590a -5959590a595959590a59590a5959590a5959595959595459595954595959595459595959 -545959595959595959595959545959595459595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd595959 -5959cd595959595959595959540859595959595959595959055959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -0505050505050505050505050505061c595959595959ae060e0e0d0000060e0e2ed75959 -595959595959055959595959595959595959595959035959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959590559595959595959595905595959595959595959595959 -595959cd5959595959595959595959595959595959595959595959595959595959045959 -595959595959595959590a0a0a5959590a59590a59590a59590a59595959595959590a59 -590a59590a59590a5959590a595959590a0a0a595959590a595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595904595959cd59595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959592d045959595959595959595959595959 -595959595959595959595959595959055959595905595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050505050505050505050505050606595959595959ae060e0e0d00 -001c0e2e59d75959595959595959595959595959595959595959595959c8595959595959 -595959595959595959595959595959055959595959590559595959055959595959595959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959597f045959595959595959595959590a59590a59590a59590a59590a59590a5959 -5459595959590a59590a59590a59590a5959590a59590a590a59590a5959590a59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959cd5959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd595959cd59595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5459595959595959595959595930fa050505050505050505050505050505061c59595959 -5959ae060e0e0d0000060e592ed759595959595959595959595959595959595959595959 -590359595959595959595959595959595959595959595959595959595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -5959595959595959595959595904595959595959595959595959590a0a59590a0a0a590a -0a59590a0a590a59595959595959590a0a595959590a0a590a5959590a0a5959590a0a59 -59590a0a0a0a595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -05050606595959595959ae060e0e0d00001c0e2e59d75959595959595959595959595959 -595959595959595959055959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959595959595959595959595959595959595959595959595959 -595959595959595954085959595959595959595959595959595959595959595959055959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959545959595930300505050505 -05050505050505050505061c595959595959ae060e0e0d0000060e0e0ed7595959595959 -595959595959595959595959595959595903595959595959595959595905595959595959 -595959595959055959595959595959595959055959595959595959595959590559595959 -595959595959595959590559595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd595959595959595904595959595959 -59595959595959595959595959595959595959595959590a0a0a0a0a0a59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959592d04595959595959595905595959595959595959 -595959595959595959595959595959590559595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505050505050505050505050606595959595959ae060e0e0d00001c0e2e -59d75959595959595959595959595959595959595959595959c859595959595959595959 -595959595959595959595959595959595905595959595959595959595959595905595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959cd5959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959cd59595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -590559595959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595930fa050505050505050505050505050505061c595959595959ae06 -0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959595904cd59 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595905595959 -595959595959595959595959595959595930300505050505050505050505050505050606 -595959595959ae060e0e0d00001c0e2e59d7595959595959595959595959595959595959 -5959595959c8595959595959595959595959595959595959055959595959595959595959 -055959595959595959595959595959595959595959590559595959595959595959595959 -59595959595959595959595959595959590559595959595959595959595959cd59595959 -cd5959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959cd5959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd5959595959cd59595959595959595959595959595959cd5959595959 -59595959b308595959595959595959595959595959595959595959590559595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959593030050505050505050505 -050505050505061c595959595959ae060e0e0d0000060e0e0eef59595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595905595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd5959595959cd5959595959 -5904cd595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595459592d0459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05050505050505058d05050505050606595959595959ae060e0e0d00001c0e2e594f5959 -595959595959590559595959595959595959595959055959595959595959590559595959 -595959595959595959595959595959595959595959590559595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959cd595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959055959595959 -595959cd5959cd595959cd59595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959cd59595959 -595959595959595959595959595959595959595959045959595959595959595959055959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -545959595930fa050505050505050505050505050505061c595959595959ae060e0e0d00 -00060e0e0eef595959595959595959595959595959595959595959595903595959595959 -595959595959595959595959595959595959595959595959595959055959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959cd595959cd5959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959cd5959cd595959cd59595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959593030050505050505050505050505050505060659595959 -5959ae060e0e0d00001c0e2e594f59595959595959595959595959595959595959595959 -59c859595959595959595959595959595959595959055959595905595959595959595959 -595959595905595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595905595959595959595959595959595959595959 -59595959cd59595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -54595959595959595959595959595959cd59595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959cd0459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd595959595959595959595959595959 -540859590559595959595959595959595959595959595959595959595959595959595959 -595959590559595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959303005050505050505050505050505 -0505061c595959595959ae060e0e0d0000060e0e0eef5959595959595959595959595959 -595959595959595959035959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959590559595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd045959595959595459595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959cd59595959595959595959595959595959 -5959cd595959cd5959595959595959595959595959595959595959595959595959045959 -cd5959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959592d045959595959595959595959595959055959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595930300505050505 -050505050505050505050606595959595959ae060e0e0d00001c0e2e59d7595959595959 -5959595959595959595959595959595959c8595959595905595959595959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959055959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959590559595959545959595959595959595959 -5930301c1c1c1c1c1c1c1c1c1c061c060606061c595959595959ae060e0e0d0000060e59 -2ed759595959595959595959595959595959595959595959590359595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959cd5959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959593030051c1c1c1c1c0606060606060606300606595959595959ae06 -0e0e0d00001c0e2e59d75959595959595959595959595959595959595959595959055959 -595959595959595959595959595905595959595959595959595959595959595959595959 -595959055959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd59595959597f045959595959595959545959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959cd5959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595954085959 -595959595959055959595959595959595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959593030051c065959595959595959593030050606 -595959595959ae060e0e0d0000060e0e0ed7595959595959595959595959595959595959 -5959595959c8595959595959595959595905595959595959595959055959595959595959 -055959595959595959595959595959595959595959595959595959055959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595459 -595959595959595959595959595959595959595959595959595959595959595459595959 -5959595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959592d04595959595959595959595959595905595959595959590559595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959545959593030050506065959595959 -5959593030050606595959595959ae060e0e0d00001c0e2e59d759595959595959595959 -59595959595959595959595959c859595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959597f0459595959595959595954 -595954595959595959545959595959595959595959595959595459595954595954595954 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959055959595959 -595959595959595959595959595959595959595959595959595959595959595959303005 -05061c5959595959595930300505061c595959595959ae060e0e0d0000060e0e0eef5959 -595959595959595959595959595959595959595959035959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595459595954595959545959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959cd045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959595959 -595959595959595959595905595959595905595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595930300505050606595959595959303005050606595959595959ae060e0e0d00 -001c0e2e594f5959595959595959590559595959595959595959595959c8595959595959 -055959595959595959595959595959595959055959595959595959595959595959595959 -595959595959595905595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959cd5959595959595959595959595959595959 -595959597f04595959595959595959595959595459595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959cd595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959cd59595959cd595959595959595959595408595959595959 -595905595959595959595905595959595959595959595959595959595959055959595959 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959593030050505060659595959593030050505060659595959 -5959ae060e0e0d0000060e0e0eef59595959595959595959595959595959595959595959 -590359595959595959595959595905595959590559595959595959595959595905595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959cd5959 -595959595959595959595959590459595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959cd59595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -2d0459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959593030050505051c0659595959303005 -05050606595959595959ae060e0e0d00001c0e2e594f5959595959595959595959595959 -595959595959595959c85959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959597f045959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959595959595959cd045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959055959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595459595959595959595959595930300505050506 -06595959303005050505061c595959595959ae060e0e0d0000060e0e0eef595959595959 -595959595959595959595959595959595903595959595959595959595959595959595959 -595959595959595959595959595959590559595959595959595905595959595959595959 -595959595959595959595959595959595959590559595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959cd5959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595905595959595959055959595905595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5930300505050505060659593030050505050606595959595959ae060e0e0d00001c0e0e -0e4f59595959595959595959595959595959595959595959590559595959595959595959 -595959595959595905595959595905595959595959595959595959595959595959595959 -595959595959055959595959055959595959595959595959595959595959590559595959 -59595959cd59595959595959595959595959595959595959595959595959595959595959 -7f0459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595459595959595959595959595959595959 -cd59595959595959cd595959595959595959595959595959595959595959595959595959 -595959595959595959595959cd0459595959595959590559595959595959595959595959 -595959055959590559595959595959595905595959590559595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959540859595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959593030050505050506065430300505050505061c595959595959ae06 -0e0e0d0000060e0e0ed75959595959595959595959595959595959595959595959035959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959045959595959595959595959590559 -595959595959595959595959595959595959590559595959595959595959595959590559 -595905595959055959590559595959595959595959595959595959595959595959595959 -59595959595959595959595959595959595959595959595959595959595959592d045959 -595959595959595959595959055959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959545930300505050505050630303005050505050606 -595959595959ae060e0e0d00001c0e0e0ed7595959595959595959595959595959595959 -5959595959c8595959595959595959595905595959595959595959595959595959590559 -595959595959595959595959595959590559595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959597f04595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595408595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959cd5959595959595959595959cd595959595959 -595959595904595959595959595959595959595959595959595959055959595959595959 -595959595959595959055959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959545959595959593030050505050505063030 -0505050505050606595959595959ae060e0e0d0000060e0e0ed759595959595959595959 -595959595959595959595959590359595959595959595959595959595959595959595959 -595959595959595959595959590559595959055959595959595959595959595959595959 -595959055959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959cd5959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595904cd595959595959595905595959595959595959595959 -595959595959595959595905595959595959595959595959595959595959595959595959 -595905595959595959595959595959595959595959595959595959595959595959303005 -05050505050530300505050505050606595959595959ae060e0e0d00001c0e2e59d75959 -595959595959595959595959595959595959595959c85959595959595959595959595959 -595959595905595959595959595959595959595959595959595959595959595959595959 -595959055959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959cd59595959595959595959597f045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590559595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595954085959595959595959595959595959 -595959595959595959595959590559595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959303005050505050505308d050505050505061c595959595959ae060e0e0d00 -00060e0e0ed7595959595959595959595959595959595959595959595903595959595959 -595959595959595905595959595959595959595959595959590559595959595959595959 -595959595959590559595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595904595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959545959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959cd595959595959595959 -595959595959595959595959595959595904595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959590559595959595959595959 -595959595959595959595959595959595959595959595959595959595904595959595959 -595959595959595959055959595959595959055959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595930301c1c061c06060606061c0606060606060659595959 -5959ae060e0e0d00001c0e0e0ed759595959595959595959595959595959595959595959 -590559595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595959595959055959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959597f0459595959595959595959595959595959595959595959 -595959595959595959595959595959595959545959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590459595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -590459595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595905595959595959 -595959595959595959595959595959595959595959300606060606060606060606060606 -0606061c595959595959ae060e0e0d0000060e0e0ed75959595959595959595959595959 -595959595959595959035959595959595959595959595959595959595959595959595959 -595959595959595959595959595959055959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959590559595959595959595959 -5959595959595959595959595959595959595959590459cd595959595959595959595959 -595959595959595959595959595959595959595959595959545959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959cd595959595959595959595959595959595959595959595959595959595959045959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959045959595959595959595959055959595959595959595959595959 -595959595959590559595959055959595959595959595959595959595959595959595959 -595959595959595905595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959ae060e0e0d00001c0e0e0e4f595959595959 -595959595959595959595959595959595959595959595959595905595959595959595959 -595959595959595959595959595959595905595959595959590559595959595959595959 -595959595959055959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595459 -595959595954595959545959595959595959595959595954595959545959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959cd5959595959595959595959595959595959595959595959595959595959 -595959cd5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959cd5959595959 -595959595959595959595959595959595959595905595959595959595959595959595959 -055959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595959595959595959595959595959595959595959595959ae060e0e0d0000060e0e -0eef5959595959593efafa27fafa30fa3030fa3030fa3027fafa273e27273e2727272727 -27273e2727273e2727273e2727273e2727273e2727273e2727272727273e272727272727 -273e2727273e2727273e27272727272727273e2727273e27273e27273e273e273e3e273e -273e27272727fa27fafa27fa27fa2730fafa30fa3027fa30fa30fa30fa3027fa302730a9 -30a93030a9303030fa3030fa303030303030fa30fa30fa30fa30fa3030fa303030fa3030 -3030fa303030fa3030fa3030fa30fa30fa30fa30fa30fa30fa30fafa30fafa30fa30fafa -30fafa30fa30fafa30fafa30fa3027fa3027fa3027fa27fa27fa27fafa27fafa27fa273e -273e27273e27fa27fa27273027fa27fa273e273e273e273e273e273e273e273e273e273e -27273e273e273e273e273e273e273e273e273e27273e27273e27273e273e273e273e273e -2727273e273e27273e2727273e27273e27273e27273e273efa27fafa27fafa27fafa27fa -27fa2730fa30fa30fa30fa30fa30fa30fa30a93030a9a9faa927fa27272727273e272727 -3e2727273e272727272727273e2727273e2727273e2727273e2727273e27273e27273e27 -273e273e273e273e273e2727273e27272727fa27fa27fa2727fa27fafa30fa30fa3030fa -30303030303030595959595959595959595959595959595959595959595959595959ae06 -0e0e0d00001c0e2e594f59595959595930303030303030303030303030303030302727fa -272727273e2727fa27272727fa272727fa272727fa272727fa272727fa27273e2727fa27 -2727273e2727fa27272727fa272727fa272727fa273e2727fa272727fa2727fa2727fa27 -27272727272727272730fa30fa3030273030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -302730303030303030303030303030303030303030303030302730273027302730272730 -27273027273027fa273027273027302730273027302730273027fa273027302727302730 -273027302727302730fa273027fa273030fa2730fa2730273030fa273030303027303030 -303030303030303030303030303030303030303030303030303030303030303030272727 -fa27fa272727fa272727fa2727273e2727fa27272727fa272727fa272727fa272727fa27 -27fa2727fa2727fa27272727272727272727fa3027fa2730fa3030303030303030303030 -30303030303030303030303030301c595959595959595959595959595959595959595959 -595959595959ae060e0e0d0000060e0e0eef595959595959273005050505050505050505 -050505052e052e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c2e1c1c1c1c1c1c2e1c2e1c2e1c1c2e1c2e1c1c2e1c1c2e1c2e1c2e1c2e1c2e1c2e -1c2e1c2e2e1c2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e2e1c2e2e2e2e2e0505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505052e1c050505050505050505050505051c1c59595959595959595959595959 -5959595959595959595959595959ae060e0e0d00001c0e0e0e4f59595959595930300505 -050505050505050505051c2e30051c1c1c1c2e1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c -1c2e1c1c1c2e1c1c1c1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c2e1c1c1c1c2e1c1c -1c1c1c1c1c1c2e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c06061c0606060606061c1c1c1c1c061c1c1c1c -1c1c1c1c1c06060606061c0606061c061c061c1c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c30050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05050505050505050505050505051c1c1c2e0505050505050505050505061c5959595959 -59595959595959595959595959595959595959595959ae060e0e0d000002ec0fec0f5959 -595959593030050505050505050505052e1c1c3030051c1c595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959303005050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505051c1c1c1c1c1c0505050505050505 -051c06595959595959595959595959595959595959595959595959595959643725db0000 -014f4f4f4fec595959595959303005050505050505051c1c1c1c593030051c1c59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -5959595c5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595930300505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050505050505050505050505050505050505051c1c59591c1c -1c1c05050505050505061c59595959595959595959595959595959595959595959595959 -5959258b4e122500004f13133e0f59595959595930300505050505052e1c1c1c59595930 -30051c1c5959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959593030050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05051c06595959591c1c1c1c050505050506065959595959595959595959595959595959 -59595959595959595959438b1212db00004f3e1313ec5959595959593030050505051c1c -1c1c59595959593030051c1c595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -303005050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505051c1c5959595959591c1c1c1c050505061c595959595959595959 -595959595959595959595959595959595959dbbb7e124300004f133e130f595959595959 -303005052e2e1c1c595959595959593030051c0659595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595930300505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050505050505051c0659595959595959591c061c0605060659 -5959595959595959595959595959595959545959595959595959438b7e7e2500007a1313 -3eec5959595959593030303030305959595959595959593030051c1c5959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959593030050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050505050505050505050505050505061c5959595959595959 -5930303030061c595959595959595959595959595459595959595959595959595959258b -12124300004f3e731364595959595959303005053030303059595959595959303005061c -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959303005050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505051c06 -595959595959595930303030050606595959595959545959595959595959595959595959 -595959595959db8b127e2500007a13133eec595959595959303005050505303030305959 -5959593030051c1c59595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595930fa0505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505061c595959595959303030300505051c1c59595959595959595959595959 -5954595959595959595959595959438b12124300004f7395130f59595959595930300505 -0505050530303030595959303005061c5959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959593030050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05050505050505050505050505051c065959595930303030050505050506065959595959 -59595959595959595959595959595959595959595959dbbb127e2500004f133e13ec5959 -595959593030050505050505050530303030593030051c1c595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -59595959595959595959595930fa05050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05050505050505050505050505050505050505050505061c595930303030050505050505 -05061c595959595959595959595959595959595959595959595959595959438b12124300 -008b73957364595959595959303005050505050505050505303030303005061c59595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595930300505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050505050505050505050505050505050505051c0630303030 -0505050505050505051c0659595959595959595959595959595959595459595959595959 -595943bb127e2500004f13133eec59595959595930300505050505050505050505053030 -30051c1c3030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -3030303030303030303030303030303030303030303030303030303030fa050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505061c30300505050505050505050505061c5959595959595959595959595959595959 -59595959595959595959db8b12124300008b217313645959595959593030050505050505 -050505050505050530050630303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303030303030303030303030303030303030303030303030303030303030303030303030 -303005050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -05050505050505050505063005050505050505050505050505061c595959595959595959 -59595959595959595959595959595959595943bb127e2500007a73133eec595959595959 -30301c1c1c1c1c1c1c1c1c1c1c06060606061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e0e2ef10ef10ef10ef10ef10ef10ef10ef10ef10ef1 -0ef10ef10ef10ef10ef10ef10ef10ef10ef10ef10ef10ef12e0e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e1c1c1c1c1c1c1c060606061c1c061c061c061c061c060606061c59 -5959595959595959595959595959595959595959595959595959db8b1212430000a32173 -1364595959595959301c1c1c1c0606060606060606060606060606061c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c061c061c061c0606061c0606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -06060606060606060606061c061c061c061c061c1c061c06061c06061c06061c061c061c -061c061c1c061c061c061c1c061c1c061c1c061c061c1c061c1c061c1c061c061c06061c -1c061c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c061c1c061c1c1c1c061c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c061c061c1c1c06 -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c2e1c2e1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e -2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e1c2e2e2e1c2e2e1c2e1c2e2e2e2e2e2e -2e2e2e2e2e1c2e2e1c2e1c1c1c1c1c1c1c1c1c1c1c060606060606060606060606060606 -0606060606060659595959595959595959595959595959595459595959595959595943bb -217e2500009673133eec5959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959595959595959595959595959595959595959595959595959595959595959 -595959595959db8b1212430000bb21730273ecec64ecec64bf8f0fbf8f368f368f36aeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae22aed7d7aed7d7d7d7d7d7d7d713ec -6464646464f864646425256443648b7e127e25001d007a1313733e4f504f4f4f7a4f347a -4f7a4f4f4fc306060606060606060606061c061c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c061c06061c060606060606060606060606060606060606061c06061c06 -061c06061c06061c060606060606061c0606060606060606060606060606060606060606 -06060606060606060606060606060606060606060606060606061c0606061c06061c0606 -06061c0606060606061c060606061c06060606060606060606060606061c060606060606 -0606060606060606060606060606060606061c0606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -0606060606060606060606060606060606060606060606060606061c061c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c061c0606060606060606060606060606060606061c06061c1c1c1c1c1c1c -1c1c1c1c1c1c7a7a7a7a7a7a7a7a8b5a8b8b8b38bbbb1212124300061d008b7373021313 -73130295027302212121212173860e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e5c0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e5c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e4f02137302022121123712121212127e12b512db0006 -898700256473730273737321217e121212122121138f0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0ef10ea37321b51212127e1212127e1212 -21121243db000606f81d890000646425252564d3432543434343434343640d0d0d0d0d0d -0d050d050d05050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050d050d050d -050d0d0d0d0d0d0d0d050d050d050d0d050d050d050d050d050d050d050d050d050d0d0d -050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d -0d0d0d0d0d0d0d0d0d0d0d050d050d050d050d050d050d050d050d050d0d050d050d050d -050d050d0d0d0d0d0d0d0d0d0d0d050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d -0d0d0d050d050d050d0d0d0d0d0d0d050d050d050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d -0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d -0d0d0d0d0d0d0d0d0d0d0d050d050d050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -050505050505050505050505050505050505050505050505050505050505050505050505 -0505050505050505050505050505050505050505050505050505050505050d050d0d0d0d -0d0d0d0d0d0d0d0d0d0d050d050d050d0505050505050505050505050d051343432543db -43db43db43dbdbdb43dbdb00000000061d891d1d1d000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000060600 -%%PageTrailer -%%Trailer -%%EOF diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.gif b/lib/et/doc/src/sim_trans_contents_viewer_collector.gif deleted file mode 100644 index 77115b71ab..0000000000 Binary files a/lib/et/doc/src/sim_trans_contents_viewer_collector.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.png b/lib/et/doc/src/sim_trans_contents_viewer_collector.png new file mode 100644 index 0000000000..545697bf38 Binary files /dev/null and b/lib/et/doc/src/sim_trans_contents_viewer_collector.png differ diff --git a/lib/et/doc/src/sim_trans_contents_viewer_collector.ps b/lib/et/doc/src/sim_trans_contents_viewer_collector.ps deleted file mode 100644 index 3ef1921fa2..0000000000 --- a/lib/et/doc/src/sim_trans_contents_viewer_collector.ps +++ /dev/null @@ -1,1407 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/sim_trans_contents_viewer_collector.ps -%%CreationDate: Mon Oct 14 17:27:25 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 406 232 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 217.359744 translate -391.247539 -217.359744 scale -% Image geometry -468 260 8 -% Transformation matrix -[ 468 0 0 260 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 468 string def -/gstr 468 string def -/bstr 468 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 82198 ASCII Bytes -colorimage -r;V -r;V -r;VIJ,~> -rr;uunc&S -rr;uunc&SGMnXbRJ\(Zg!&X*C!28f[!28r_rrE$dJ,~> -rr;uunc&SuJaS*WKC/_KmJd0^mJd0^nc/Uhrc -s8N-#s8W)KqVM,3!%EJWXc%a_f7O,Rs3:GkqVM/4!i5k@qpkQ"r8n'Vs3:GkqVDD -s8N-#s8W)LrS%8-ro3q>!&U.0JWYMGlB)-)s3CVlrmq&%rndY6s5jBVs3CVlrmq&%rndY6s5jBV -s3CVlrmq&%rn[h~> -s8N-#s8W)KqVM,3!+LN9J_l%9!b22SqpkQ"r8n'Vs3:GkqVM/4!i5k@qpkQ""m5jb!-<43~> -!ri9#rRLc$qW7c,JTJAC!.4]d!.4]d!.4]d!.4]d!/(8l!/(8l!/(8l!/(8l!/(8l!/pht!/pht -IuAYpF,PBdF,PBdF,PBdF,PBdF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m -F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m -F-M#mF-M#mEsn4ZF*!RmF*!Re.KB:qqVM,3!Mobmeb\/"joM:XqpkQ"rT41+!&9!~> -"9/B$df.hrgA]t.ir/!>1kC(kI/nitI/nitI/nitI/o!#I/o!#I/o!#I/o-'I=I*)I=7*+I=7*+ -I=7*+I=76/I=76/I=76/I=7B3I=7B3I=7B3I=7B3I=7N7I=7N7I=7N7I=7N7I=7N7I=7N7I=7N7 -I=7Z;I=7Z;I=7Z;I=7Z;I=7Z;I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=7Z?I=3?2 -KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?KmeB?I5M!'df.hrgA]t.ir8'@U&Y,?rmq&%rndY6 -roO6Ts8LIGf)=>%hYuL:k0 -!ri9#rRLc$qW7ceJ^(aM!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(ns4..o -s4..os4..os4..oJ)8`#c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q -c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q -c/.!qc/.!qc/.!qc/.!qc/-]Ss81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-F+=~> -!ri9#rmgl%qrRtJjsbjrr+Z:SK6,%I!-A-S!-A-S!-A-S!-A-S!.4][!.4][!.4][!.4][ItMfW -C4gSBC4gSBC4gSBC5[.JC5[.JC5[.JC5[.JC5[.JC5[.JC6WdSC6WdSC6WdSC6WdSC6WdSC6WdS -C6WdSC6WdSC6WdSC6WdSC6WdSC7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[ -C7K?[C)iabC208[C208[C208[C208[C208[C208[C+92\eb\/"joXtHs8:FDhYZF:m\Km\eb\/# -joWd-0n9~> -!ri9#rmq&%rndY6roO:IjtqX7r-8?lNIf5t!.Fil!.Fil!.Fil!.k,p!.k,pIt`;rH%gZlH&6rp -H&6rpH&[5tH&[5tH'*N#H'*N#H'Nf'H'Nf'H'Nf'H's5/H's5/H's5/H's5/H's5/H's5/H(BM3 -H(BM3H(BM3H(BM3H(BM3H(BM3H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7GqPeA -H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7H$Q*7Gr5QLdf.hrgA]t.ir8'ClCn7+ -df.hrgA]t.ir8'ClCn7+df.hrgA]t.irA-Bc2^7_~> -!ri9#rmgl%qrRtJk$in\r5JZ[`l.r&rl"l^rl"l^rl"l^rl"l^rl"l^rl"l^rl+o^s2G#_s2G#_ -s2BK -!PlLd.hVN!^pA`c["nqt2CA.]*C&i>SC&i>SC&i>SC&i>S -C&iV[C&iV[C4CSOC;luiC2/BBC2/BBC2/ZJC2/ZJC2/ZJC2/uSC2/uSC2/uSC2/uSC2/uSC2/uS -C2/uSC2/uSC208[C208[C208[C208[C208[C208[C208[C208[C208[C20PkC20PkC20PkC20Pk -C20PkC20PkC20PkC20PkC2,&jHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR;kHYR:Es8CLE -hYZI8mK'-`rRLX.roX7K!MoboeH4Sn62f[?62fpIm_&UN~> -!%hYuO6k5X]IjtrrXs5)RS%$ehTSbiB7hVNBtpA3Ea"nqe8FnY\0FT?^dFT?jhFT?jh -FansfF`i7\F`iC`F`iC`FiLG,F`i[hF`i[hF`iglF`igpF`istF`j+#F`j+#F`j+#F`j+#F`j7' -F`j7'F`j7'F`j7'F`j7'F`jC+F`jC+F`jC/F`jC/F`jC/F`jO3F`jO3F`jO3F`jO3F`jO3F`jO3 -F`jO3F`jO3F`fI9JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ+3JTZ)l -qU5AorS%8-ro3q>s69ZZqU5AoqEY$JroX7G!hoJ=rmh2*5X='&hZ#tDir8'AlFHtG~> -!`?F*_`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pp]Y`Pl -!s&AOec+G*63#g?k5RaHmK)H!oO7iRPi6'PK9Yk7!J?X%@KP*)3T"9XKE%0%k5S=Fc-87Xp@^4M -K9Y/#s7QRM@eTLMraGkBraGkBraGkBraPnls'btLraL@uC1:Y!C1:YRs*J4%C1:Y)C1:Y)C1:Y) -C1:Y1C1:Y1C1:Y1C1:Y1C1:Y:C1:Y:C1:Y:C1:Y:C1:Y:F(/UCF(/UCF(/UCF(/UKF(/UKF(/UK -F(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/T)S9&.KS9&.KS9&.KS9&.K -S9&.KS9&.KS9&.KS9&.KS9&.KS9+[=!@e'Jeb\/"k5OcLV#UGE!8dH9s5s=K!MobpeH"J)63#g? -63$*ImK(!$J,~> -!s&APf)FD'5l]^?iWA717/lHPi\^:E!KEZ/D#oWen8/2cSa(%ngl2dUTrmh)'q`t*Js5s=G!MTAh -ec=G&5l]^>7/uELl2eHrJ,~> -!s&AOec+G*63#g?k5RaHmK)HZoXt:Me`"1Bc.2 -!W`8NrndT>rT=,Gs%<=Z!Tkj'=p"Et9&a"UpA[bT=p"Et9'TU[3T"!Qk05VQp@^4=;E6a@p@^4E -pA[b@>6":!0j=;E1&G,S@fBO2@fBO6CA.["CAqCdC1:@MF(/+B>2>+B>2>+B>2>+B>2 ->+B>2>+B>2>+B>2>+B>2>+B>2>+AbFs4,ZrhYZI6mKKEde^`O5pH\fArU'ibs4,ZVhY0;9k5OcL -]` -!W`8Orn@<9ro*q?rBpbQmc$(qB`e#)=lO,spA.q^B`e#)=mB]%84;?L''@V)=n_\S@:_ttC%h6_ -C%hC+h.co_#n5LD>n7!EG]E(FnYZ7H#780H#780I;N\4JT9,tEH,],KlLg@M/d6D -M/d6DNHJrLO`bAPO`bAPQ$$eTQ$$eTQ$$eTQ$$eTR<<4XR<`L\R<`L\R<`L\SU"p`SU"p`SU"p` -SU"p`SU"p`Tm:?dTm:?dTm:?dTm:?dTm:?dTm:?d3MC_4Bq]fdBq]fdBq]fdBq]fdBq]fdBq]fd -Bq]fdBq]fdBq]fdBq]fdBq]fdBq]fdBq]5tqUX6rgA]t.ir8*>l3?[MqUX6OgAF566icBKl3?[M -qUX6OgAF566icBKl2eHrJ,~> -!W`8NrndT>rT=,Gs%<=Z!Tmk`[/^.+UuJc]rrAkb[/^.+V!>>eKAX$Kp?$Fds8R/A["F"^&PHh`P(F%[(WiR`P&Xc`P&Xc`P&Xc -`P&Xcc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKkc+UKk -e\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>se\/>s-.T]9[+2js[+2js -[+2js[+2js[+2js[+2js[+2js[+2Nms4,ZrhYZI6mKKEde^`O5pH\fArU'ibs4,ZVhY0;9k5OcL -]` -!k5RaH9)n;[jsg1*#'8Z$mZ^VVrr2t>qGI]kk5YJLC/USis6cEV;ZGSWKC8c0;RHH' -s)SY+s6c+L;Vp8_mf/eT[/U(0F*ldDs6bgA;CBH`K2PUKmS`cY;GqSms6c+LV#PL6`W(9_`P#/j -hZ*#.;GuB.XPWnR"G?_q3Q;!t#\s)5;H!5^0spr[s)SV*s6c+L;Vp93hGX(Iqbdflk5YJLC/USi -s6cEV;ZHG(0iI`=0iE)Ls6cCT;OlnLs6as8rr7FoSF6FFS5O**hVPX%;N(Qi;GqR>;GqR>;GqjN -;GqjN;GqjN;Gr-V;Gr-V;Gr-V;GrE^;GrE^;GrE^;GrE^;GrE^;GrEf;GrEf;GrEf;Gr`o;Gr`o -;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Go66C/RroC/RroC/RroC/RroC/Rro -C/RroC/RroC/RroC/RroC/RroC/RroC/QMSeb\/"k5=WKV"W@6mK03Xec"A#5lg'GmK(!$ -J,~> -!A\S0Ds+LU4qZ#uKqIM&"s-7/,[dI`#qIO5lhYQZ6A[;>iA]k%,A^8/( -L#2[oTk.fpijRkFAH\:uI7VZ_rs3oDqIO73p,p(gs8Rc]hYQZ6AS'l\[c1llqYOh3Woj0Xl?Qs@ -lMp.Lral-''0Kk"p,loChYQZ:AS%n(qZ#i3^Ae.]M5ok@m]'iDD;sQhk%0hXH"CQ= -rS%69r'UPIrosRQ\c@6~> -!k5RaH9)n;[k$n4p#0$$1p=6P,rr2u;qQpX\pAb0d]sQ>`s7Y"B[/]h'c1_1f[,1f^ -s2>H8s7Y!M[.a4W/s7X_6ZmY#9c*Xk7p9al"['[g?s7Y!MhZ(R%k5WE-k2s%i -mf3"2[']Q#hY-oT"O6tBKBE15#eg9<[']l5F5Hors2>E7s7Y!M[.a4Mp9al"qm6a]pAb0d]sQ>` -s7Y"B[/^.>F0tuIF0rpSs7Y!M[+4mMs7XFgrr7Gleb9%:e[3$'p@dYB[*AWH['[fc['[fc['[fc -['[fc['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\)k['\As['\As -['\As['\As['\As['\As['\B&['\B&['\B&['\B&['\B&['VR<`O*#&`O*#&`O*#&`O*#&`O*#& -`O*#&`O*#&`O*#&`O*#&`O*#&`O*#&`O'+Jeb\/"k5=WKV"W@6mK03Xec"A#5lg'GmK(!$ -J,~> -!pAa!Vs6`0^pA\#Nk5TL+F';35;CIJ']h22jUbVT:0k0kEC;p3VHiK!rmf/2;p3TF* -mV9`@>#P(ohP;n*;BrRK5tYV[s&(TFp+]J=p+^%Ms&)J_mV9`@>#P(ohP;mgjtZg4I\d##HYSd2 -SH$Q3^&OF';I>F(/$F -HX]lNHX]lNHX]lNK47_VK47_VK47_VMdfR^MdfR^MdfR^MeZ-fMeZ-fMeZ-fMeZ-fMeZ-fP\O)o -=d3Z!;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo -;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;CV>9hYZI4mK'-WrS@TAhVS.l!)!1W!MoGdhYTS= -k5=WJ]` -!sRQPH!tu0;#=NHOoN-l?0\FTp@^U_p?le7s(R2eO]CiLO]Ct' -=n_9#_Z+=UpAa!L5lP%6])PT'EVB675kan6?2!tSD>*g3;"j -!5s[Nns%5:Ts5l=6pA[E5p@^45 -p@^5*s.hZ5s+5pmQ -s.hZ5s+5s[Lsp@^6's%5:Ts5l=6pA[E58lG].8lA8RC0F5% -F';1.F';1.HWj$6HWj$6HWj$6K3Cl>K47GFK47GFK47GFK47GFK47GFK47GFMdf:NMdf:NMdf:N -Mdl]Y;2\mU8rI.N8rI.N8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW -8sEdW8sEdW8sEdW8sEdW8sEdW8sEdW8sEfa8c^C7r8.>5qsOLX!MoGfh>fk=k5XiL9)e8Yp&Uu_ -r8%G9r': -!W`8Srnd\7qEtNYmdBZ:hDG.5$_@Sc>]\Q2c\Ds2&@DlFq-8 -8=BLX8s/Jb\s,$1D>sMCd9NCf[4QcZD6tQD\9Nh)c83g0hs2J&M=]p#] -=]p/a=]p;i=]p;i=]pGm=]pSu=]pSu=]p`$=]p`$=]p`$=]p`$=]pl(=]pl(=]pl,=]pl,=]q#0 -=]q#0s&i3aEEQG0EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4 -EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EEQG4EW0)C2"oYWrndY6roX4FrpKgW#,1bEg>:[Oro3q> -s69SPrpKgW"/5GBgA]q/iql.DlMg2Qo""gO~> -!mklSH&V1SGT*>pA^%tPa%+"s+>s*s6bf@s8R^us8RGA -s8R/Zs2BW0s/_ajs+>[us*LRAs)X_(s2D(0PaqTGs8OC'^&O=Ts8R/bs2BW0s/_ajeXZ[5c)gql -`W*o0`W*$0s8RFmMuKLsk5TLuV#UI9SH&V1V#UI9V#UI9`W*o0`W*$0s8RFmMkk]HrM4r:s,25g -P`,88K7g9*mYdn@s)Y"9s)ZHb`Il/0XS2[PH^p=YV#UI9pA]btXT.^HV#UIAH^(W3eVgN)UpR5! -UqNk*UqNk*UqNk*UqNk*UqO.2UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^: -UrB_@Uf#+ -!jAL62jIXV!d[Mp&Uu_rS@N?r9""H!_VnKrq6AgpANhJk57OE9)e8Yp&Vi, -J,~> -!ep@^UO -p@^VOr;V8;s8P>i?!1 -!art9CCV#UIAV#UI9V#UI9V#UI9 -eboF\]p/QsF/8j9F/8j9F/61ns8VN#q4nASs/b)FF.E:1F4L3g$b_emp9`u,m_/%0eboFM]p/Qs -F8VgJk5TLuV#UI9V#UI9V#UI9V#UI9eboFM]p/QsF82R2rrI22rhTSo%We/9s8RGAs8R/9s8R/j -r;Ql4s8R0=UjoKGs)\5?F.BW;s*M-Qs)YQKV#SttUnkB!Unk]*Unk]*Unk]*Unk]*Unk]*Unku: -Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unku:Unl8BUnl8B -Unl8BUnl8BUnl8BUnl8BUnffk[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB[%sMB -[%sMB[%sMBUgj&rh>jAL62jIXV!d[Mp&Uu_rS@N?r9""H!_VnKrq6AgpANhJk57OE9)e8Yp&Vi, -J,~> -!s&AXhYZI69)n>Xp&X#!r(7$Ts.oTJ"$-)K1&=KDmf-Jh8f$Rh8kNRmjtTL%p+]25p+]25p+_g3 -V#<"]3VN/$9(qs59(qs58kMBAV#TjKqFV0;s4-h$0hV050pM^6r@n^@XT..QPlK:00pM^6r@nC7 -p@^6=8cc$nr_!4a%l$]Mp+]25p+]25p+_g3V#<"M3VN/$pdtVUs'#@n''B3d8n.h_0hV050hV05 -0pM^6r@nB9s'#CoIp,bDp+b_08m6!0jtTd-p+]H;@fN5a8nqO%8on0.8on0.8on0.8pa`68pa`6 -8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW -8sEdW8sF'_8sF'_8sF'_8sF'_8i2cI8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_ -8kP=_8kP=_8kP=_8h'K5h>l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=Tmf)n\ -]` -!s&AXhYuO6k5IaM8FGpFncJO=2#L>TRK'Gg49J.Jp,r1O!p]esrDaWqs&E'5s5lFDp@^UKp@^UK -p@^V:s/u;_'1hij4B;+K4B;+K4B5BX=f)/`;#40#IK.adPsA@Cp,ncCY5LHk8?W!HV3V)7Y!AET -Y5LHb8G;a>r)Ed's8H$up('8cp@^UKp@^UKp@^V:s/u;_"%`.Z4SVnXlMkGo<>+HoYrn[_97,n4.rosRQ8FHKJ!qr>Yrn[Y7 -q*b6R!:KjW!P/8]~> -!s&AXhYZI69)n>Xp&X#Zr1!i-s2FqX",$XRF8DC.pA^BUS/1huK:K%CmW4ous)X_1s)X_1s)Z0Z -`VjikKE(smSH&V1SH&V1S=Gh.`W,XrqO@u$s5s$gH^t-9F2e0urGrC"ec4dN[/]:5Hc?$(rGr'n -s8R0l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=Tmf)n\ -]` -!W`8Wqr[qHs%<=Zr:U0J.JudG;XXRTH^'.Tk5T0oqar`9s5o5dP[^0_]kYOdM_Ritp+]25p+]2% -s(Z$2s."G#K1bk20hV050hUU.C/V-cC4lQC1&4Eemf3;Q3D0#=0iIH>S9pKQ8pgU<@UfB;C,o2[ -s."G#K1bk21&OWfF8pSQ9(qs59(qs59(qs59'6.g@da8dH^'.Tp@^459'5:68q*<1k)4SN@\!J3 -C;p420hV050hV050iIH>S:d&YSH%`0H^nhCk5T1ls1NKms,/U(p@^458u2Jr3GM_i8nqO%8on0. -8on0.8pa`68pa`68qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8mR?a -8kP"N8kP"N8kP=W8kP=W8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_ -8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kLQ+hVRDWrB^jp>4Zgk!B"/r9aPWr:U;ip>4Zg -k5@UGmeocVp&Vi,J,~> -!W`8Wro3q>s69\S8FGpFo)JCag,/_-$XrK"SV<>c*M,f90s)E&Y -s*7"@meWK.Q&/N7p,r7Q,(9KB:f[5_4B;+K4B;+K4B:PDF`$RCSV<>cs5oGp -R;&5l_KF$$Prr(?p,l@Kp,lpSqONV6M4st3Ob'3C -!W`8Wqr[qHs%<=Zr:U0J@f2`(V"Xi-]u@[TpA^YYqj]Ogs6dS-`N7&YeZ@p5[!S>Cs)X_1s)X_( -s.$1as2D[j]q#-&F.E:1F.Dt(S>=]KXM+YrHhj0WpAb/FMk'hIF/8O0`P'7(SA"t&S>?2bUk>K: -s2D[j]q#-&F8VOP[/ZqdSH&V1SH&V1SH&V1SG)uQXS2\5]u@[Ts8R/1SF6+KS:8`_m_-!HXMt4i -XQKPiH^t-9F.E:1F/8O0`P'7(c2[4F[*>\BpA^Z-s4+L=s0R-Cs8R/1SB_(uK<1l=S@#)^S@#)^ -S@#)^S@#)^S@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS@u"oS6a+8 -S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR" -S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=F'^hVRDWrB^jp>4Zgk!B"/r9aPWr:U;ip>4Zg -k5@UGmeocVp&Vi,J,~> -!.sY0 -mYaC)p+]25p+]0tpA\mPpAaj*;DIu>,cq$b0gSG*p+]0K^%VKoMa:8@s#ECFs#EA;@_ML8mYaC) -p+cG:s4&5X9(qs59(qs59(qs58rNECC0J=Es6be2p@^459(qs5r(;ErhZ*W<@R67@s5oP#3D0#= -0hV050hPogpAaQ=8rMR+s5mcVPkP,lPii#.S2!#rp@^45C>RJq>#IsbC0F5%F';1.F';1.HWj$6 -HWj$6HX]T>K47GFK47GFK47GFK47GFK47GFK47GFK47GFMdf:NMdf:NMdf:NMdl]Y;2\mU8rI.N -8rI.N8sEdW8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_ -8sF'_8sF'_8sF'_8sF)i8cgI0hYuX=Ud7 -!lMg5No)A=`g,/\'$YdKOs6>S7NUlpc9`%XCQ/;Q;iakfOk5X_34@E$>p,l1Fp,l02 -o(m??_Y4#pNC`d:4AbbF4A_%.qJj[Ks7XT<5l"5%Y5cL(9MkHV4A]b/pAaE;86Puh6qmIW6qC-g -_Y4#pNC`d:4SqtTef[L[p@^UFp@^UFp@^UFNUlpcBu9TDlA\@.p,l/Jp@^WH:k"\ds8(_d9UY&C -lBOJ";"jTF;"jTF:hdf?s6>S?Q/;Q;iakfOo(m?sk5X_;4@E$>p,l/ghUXf#>u4@?>u4@?@8KdG -@8KdK@8KdOAPc3SAPc3WAPc3WBi%W_Bi%W_Bi%W_Bi%W_Bi%WcBi%WcBi%WcBi%WcBi%WgD?!F0 -O_mokO_mokO_mokQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>o -Q#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#6Ls!]9?%ro*pOr'^NT!ikh^rq6Demb[s&qaCBRs760_!ho&= -ro+"A6q%%>!q&TMrpp*_!P/8]~> -!F-Mphs)XF#eb9%:[#:ISs*K\(s*KZgUt,2=p9]bX -s)\(%s5kG^PlLc)PlLc)PlLc)PeHejUnlQ7s7WgXs8R/)PlLc)r02Z;mf3=TP`*6Cs7Wg@K9ZE9 -F-Q_)F-NKNpAainMmVpPs6c,0^%VK%`UXIPN>XIPN>XIPN> -[%rqN[%rqN[%rqN[%rqN[%rqN[%rqN[%rqN]qgmW]qgmW]qgmW]qgmW]qgmW]qk[m;8&ciPeElW -PeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElWPeElW -PeElWPeElWPeElWPeEmlPQG=^hYuX=Ud7 -!C8kNi%8kO/.8kO/.8kO/.8kOG68kOG>8 -kO_F8kO_F8kO_F8kO_F8kO_F8kO_F8kO_F8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP"N8kP=W8 -kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_s%4Z'C._*_C._*_C._*_C._*_C._*_C._*_C -._*_C._*_C._*_8h'3*k54TDp&b8imec/Dmec\Zs.o)[k54TDp&Vi,J,~> -!s&A\ir8*>lMg5No)A=aqURM":]X6Tr]C9R:e3_FrrRIB8GtXP9Me.V49.eK;#`ZX;#`ZX:^'BP -4A8F6r]CZ]:cpj::cpj::e3]29L/S>!'pD\"aNp@6p*a6;#`ZX:]X6Tr]CHW:f'8::f'8:r_NVh -5lNkJ85ME2qbS&BnsN"%Z6N4T81W4SqqT8GtXP9Me.V49.eK -;#`ZX;#`ZW:]Nc[49J,N83m/:Ip#cB4?QG.4?Pks:ha&p4Dgqc>tA6t:iTc;:j$2C:jHJG:jlbK -:jlnO:k<1S:k`IW:k`IW:k`U[:l/m_:l/m_:l/m_:lT0c:lT0c:lT0c:lT0c:m#Tk:m#Tk:m#Tk -:m#Tk:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:c"AR:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo -:f*Eo:f*Eo:f*Eo:f*Eo:f*ER2"(A&roX4FrpKdVrq6EiU$hp>roX4FrpKdVrq6EiU$hp>roX4F -rpKdVrq6B(!.Y~> -! -!!YH$>!YH$>!YH$>!YH$>!YH$>!YH,>!YH,>!YH, ->!YH,>!YH,>!YH,>!YH,>!YH4>!YH4@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;< -@R3;<@R3;<@R3;<@R3:"Mdet -!W`8[roX4FrpKdVrq?Bg!S0*t:]OMl49/(#:]OMl49/(*:]b@%8B+I+ua]t>ua]t -@9HE'AQ_i+Bj"8/D-`uH5Zpo[EEuC;F^\*CH!sNGI:5rKI:Z5OJRqYSKk4(WKk4(WKkX@[M.od_ -M.od_M.od_M.od_NG23cNG23cNG23cO_IWgO_mokO_mokO_mokQ#0>oQ#0>oQ#0>oQ#0>o5*]t] -:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo:mGlo2"'A_ -roX4FrpKdVrq?Bg"/5/Bir8*>lMg5No)A@_q?*GZio9t"rp'LNrpp'^!rBJ.J,~> -!!/&g[!h?rV_M\DYregc@repf@s,6oAs,.;UP`(HiP`(Hi -Pf8l.rel9%P`(HqP`(HqP`(I$S;W<,S;W<,S;W<,S;W<,S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4 -S;W<4S;W<4S;W<4S;W<4S;W<4S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<= -S;W<=S;W<=S;W<=S;W:F]pt"=]pt"=]pt"=]pt"=]pt"=]pt"=]pt!imel5Emec_XrrJq`r9!nE -qtC'i!Mo/]k54TDp&b9-!.Y~> -!!YH$>!YH$>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH,>!YH, ->!YH,>!YH4>!YH4@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;< -@R3:#Mdet -!fcMh?YHMh?YHMh?YHMh?Y?Mh?YPMh?YP -Mh?YPP_4UaP_4UaP_4UaP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4Uq -P_4UqP_4UqP_4UqP_4UqS:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cGK[%)c$[%)c$[%)c$[%)c$ -[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$[%)c$@da3WqsO@Trr3"pmeu;Fmec_WrrJq`rT="F -qtC'i!PJJ`~> -!W`8_qsO@Tr;QfJ.=k*B8qT_<.IQ?\qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~> -!W`8_rp'LNrpp'^rqcZp!R`fU=b9e.< -!W`8_qsO@Tr;QfJ@Y(>+Uk>HF@d`C@qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~> -!!)DN!%EI)JI$l6!%I<"!2T"H!2T"H!!%N~> -!!)DK!&T64JI$l6!&X)*!28eB!28eB!!%N~> -!!)DN!+LKbJI$l6!+P>[!2T"H!2T"H!!%N~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -!!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg<\LQ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -!!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg<\LQ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -!^id -JH_bIk2s5TJ,~> -!WJ,~> -!%j440^"f21\k.LbF~> -! -!%j440^"f21\k.LbF~> -!]` -! -!]` -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~> -!Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_K,;s+(?Is5rIT!.Y~> -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~> -! -! -! -!]` -! -!]` -!%imn']"f21\k.LbF~> -!O -!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/inFE`"ektYk.1PC~> -!%imn']"f21\k.LbF~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -!o@U&X9;\c@6~> -!]` -! -!JHji%s5rIT!.Y~> -! -!]` -! -!]` -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!]` -! -!]` -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -!pufs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~> -! -!gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquGr^ -!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquGs7 -!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~> -!gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquGsC -!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!WJ,~> -! -!DWjo>DYjo>DNjo>DWjo>D[joYVG -joG>A!!*#\!!)u[!!*#\!!)0D!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72rmh%$rOr72#1]OL -k2s>WJ,~> -! -!PrRq5Orn7>PptG`Jo%F0Gg=cQ*g&M-Og&M,(g4@u>gAh3PgAca'_Z0Z7gAca& -_Z0W?g7eQ/k.1PC~> -!A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^ -!9WDDr8mtZroO1\rT4([roO1\pu_SVo&^#Sk2l[Bjo>D[jo>C4k(2[Vk5YJ\ec1:$^&S-2ec1:# -^&S*:eYN6-k.LbF~> -!WJ,~> -! -!A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\ -!!)u[!s%KG!;tsZ!;P^V!:o7S!9WDDrT4([rT4([J`_OGjlZUCrmh%$rk8@3r71h"rk8@3#1]OL -k2s>WJ,~> -!]` -!s8W)Ps+13es8VuMs+10ds8N;WU&X9;\c@6~> -!A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[ -r;ccX!!)6F!!*#\!!)u[!!)u[!!%T4J`c(Vs8W)Ks+C?bs8VuHs+C]` -! -! -!A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD -qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<2*\!<)$[!<)$[!.j9`k2kb*s8LRKKE&Xbs8(:GKE&Xb -rs%#Ls5rIW!.Y~> -!WJ,~> -!PrRq5OmFqF;rn7>PrRq5OJ_G\/jkBb7rn@C'!lG!;q:bk" -s2+g9#25dNk2s5TJ,~> -!A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\ -!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH49GroO1\rT4([J`_OGjlZUCrmh%$!knX6q:5Lt -s1SI4#1]OLk2s>WJ,~> -! -!s8W)Ps+(6gs8VlJ -s+(Kns8UfHs5rIT!.Y~> -! -!gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp -rrDPirW)nur;_DMJZRq6s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~> -!gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI -rrDQBrW)oNr;_E&J_K2=s8W)Ps+14MommFds8UfHs5rIT!.Y~> -!gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU -rrDQNrW)oZr;_E2J`c%Us8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!]` -! -!]` -! -! -! -! -! -! -!^MsquDJQ!!)bp!!)bp!!%SOP-"]Ormh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -!^NLquDK*!!)cI!!)cI!!%T(P1os9rn@C's8VfHs+14M -#25dNk2s5TJ,~> -!^NXquDK6!!)cU!!)cU!!%T4P32fErmh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -! -!g&M,(g611is8LaPJcGcD -gAca(rs%2Ns5rIT!.Y~> -!DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C7jo>DJjo>C4k*"m,s8LRKKE(uF -ec1:%rs%#Ls5rIW!.Y~> -!]` -! -!DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4Cth!!)0\!;kpX!<2-[ -!<2-[!;GXR!;u!Y!;kpX!!23^J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!pr2]kuriH,"JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -!PrRq5Orn7>P -rn7>Pr7V,Np"BBGpY#TIr7V,Nrn@APJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SV[-%AgroO1\rT4([roO1\ -roO1\r8mtZp#Z5SpZ;GUr8mtZroX4\J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -! -!DWjo>D\jo>D[k555Xk5>;Xjo>C\jo>D[jo>D\jo>DZjp;%MjoFQ+!9WDD -p#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!gPs -"ota+!3E7%orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -!gQL -"p!B2!8?-,p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'1a!!)u[!!*#\q>gQX -"p!fJ!9WDDp#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!M'X8qmo!!)bp!!)u!!!)qu!!%SOP-"]Ormh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'1a!!)u[!!*#\ -!!)fV"9@QajoG&9!!)cU!!)u[!!)rZ!!%T4P32fErmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBFg!!)u[ -!!)u[!!)u[!!*#\rr<,_!!)ZR!!*#\!!)oY!!)rZ!!*#\rr@W4P32fErmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!^Msq#LAprrBI.rW)u"rW)nur;cetrr<,%!!)Vl -rW)ktquH\srW!#$!!%SOPH=fPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!^NLq#LBIrrBI\rW)uPrW)oNr;cfMrr<,S!!)WE -rW)lMquH]LrW!#R!!%T(PM6':rn@C's8VfHs+14M#25dNk2s5TJ,~> -!^NXq#LBUrrBIhrW)u\rW)oZr;cfYrr<,_!!)WQ -rW)lYquH]XrW!#^!!%T4PNMoFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -! -! -! -! -! -!s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -!;Zk5GA[k5G@3k5XQD!9rVG!.j:!k5YJ\ec1:%s7Y"CKE(rU -eYN6-k.LbF~> -!s6fm:s+C@O -p=91qs8N;RV#TT>]` -! -!D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rr@W4jlQOCJ``<]s8W)Ks+C@O -p=91qs8N;RV#TT>]` -! -! -!D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3G>_!"%cf!9O7]jo>DD -rW)iXrW)lYquH]XrW)iXr;cKPquH`Yrr<5b!!)-]!.j:/k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!+!!')#XK2C% -ri?)"rN#u!ri?)"ri?)"rN#u!qlBbtr2]kurN#u!oW/#mqQ0\s"KVS'X8mgQV6'^brmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!Y!!(^Qg=cN, -rn7>PrRq5Orn7>Prn7>PrRq5Oqq;#Mr7V,NrRq5Oo\'9FqV(rL"PNhUg&Q]XV:ttLrn@C's8VfH -s+14M#25dNk2s5TJ,~> -!e!!)-]k2lXD -roO1\rT4([roO1\roO1\rT4([qrRkYr8mtZrT4([o]?,RqW@eX"Qf[ajoBtpV<7gXrmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!poW/#mqQ'l$XK2E'X8mgQV6'^brmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDVu>TpZ;GUo]?,RqW7t^k2l[+joBtpV<7gXrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!WJ,~> -! -! -!DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&kX#ls,M!9WDDk2l[Bjo>D\jo>DR -jo>DYjo>DZjo>D[jo>DRjo>DXjothJjoFQ+!.j:/k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!Rg=cQ*g&M-Mg&M-Ng&M-PgA_0Fg&M-Pg&M-Pg'.Q2g&Tj\!.ik#gAh3PgAca(s7Y1H -JcG`Sg7eQ/k.1PC~> -!DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jp;%MjoFQ+!9WDDrT4([ -rT4([rT41^k2l[Bjo>DYjo>DZjo>D\k5PGRjo>D\jo>D\jothJjoFQ+!.j:/k5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -! -! -!;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF_k5G>_jo>DDquHcZrW)oZr;ciZ -quHZWquH]XrW!#^!!)ZRrW)r[rW!,a!!)-]!.j:0k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!:Q`!.ijTgABV(s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!:2k3_:2!:T(L!;kpX!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!XT._fec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -!C4k3h@3!:AnK!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -!g4=h/g&Tj\!8?-,g&V$(!!)uOrrAMArr<8W!!(^Q!8@DPs4[GPp"K -!DWjo>C4k*bB3s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -!P -rRq5Orn7>Pqq;#Mq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>D[k5PFLk5PDdjo>DD!9WDDrT4([p#Z5SrT4([roX4\roO1\ -rT4([roO1\qrRkYq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -!Pr7V,N -r7V,Nq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZ -r8mtZq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -! -!D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZ -q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -!PrRq5Orn7>Pp=]KH -q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>T -q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!DZjo>D[jo>DZk5PFLjothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[ -!<)$[!;tsZ!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!;Wk5PFMk5G>ajo>DD!!)u[!!)WQquH`YrW)u\rW)oZr;cfYquH]X -quD<1S*'bNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -!]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -!^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u! -!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl -!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YsqQ'YsrN#u!ri?)"rN#u!]r_8%rmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO -!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE -!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLqUtoLrRq5Orn7>PrRq5O^"WMdrn@C's8VfH -s+14M#25dNk2s5TJ,~> -!]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[ -!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ -!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXqW7bXrT4([roO1\rT4([^#o@prmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!WJ,~> -!PrRq5O^"WMdrn@C's8VfHs+14M#25dNk2s5TJ,~> -!D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[ -!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5> -!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYq;qYWrT4([ -roO1\rT4([^#o@prmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!m!;W\r!55K6mf(c:KE(uFec1:% -rs%#Ls5rIW!.Y~> -!PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq -!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;+tF!;Y=K!57+ds8LaPJcGcDgAca( -rs%2Ns5rIT!.Y~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[ -\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4 -!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;,CR!;YaW!57Ops8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!c2 -rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr -!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4qX8i7rX8i75XT._fec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK -!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Jg&M-Kg&M,cgAh3PgAca(s7Y1H -JcG`Sg7eQ/k.1PC~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl -rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW -!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAVjo>DWjo>Cok5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!]` -! -!D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[ -jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO -jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!)oY!!)iW!!'Xns8W)K -s+C@Op=91qs8N;RV#TT>]` -!]` -! -!;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[ -!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV -!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!)rZ!!)iW!!'Ums8W)Ks+C@Op=91qs8N;RV#TT>]` -!m!;EPp!;!;h!;W\r -!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<&u!!;W\r!4f32mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX -!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW -!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<)$[!;YaW!4h7ls8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp -!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY -!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!<2*\ -!<)$[!<2*\!<)$[!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W -!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y -!<)'X!;kpX!<)'W!<2-X!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5& -XIZHmmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT -g7?sts8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9` -k+1Z7s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\ -!<2*e!9WDDk2l[+joGDCrr@W4J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC -#ls,M!9WDDk2l[Bjo>DZk5PF4k(2Zjk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -! -! -!DYk5>:2k(2Zb -k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -!D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z -!<2*\!;u!Z!.j9`k+q/>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4 -J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!s8LaPJcGcDgAca( -rs%2Ns5rIT!.Y~> -!DDVk5PGPjo>DEk5PG[k5,/Vjo>DWjo>C4k.KjVs8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!]` -! -!]` -! -! -!D\jo>D@jo>D!jo>D&jo>D6joPPF!;P[V!<2*^!9O:YjoPPF!.j:Fk5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!p!3E7%q5aPr -qlBbtq5aPrJZQMcs6fm:s+C@Op=91qs8N;RV#TT>]` -! -!;Zk5PD]k5GAYk555X -k5>;Wk5G>_joFQ+quHZWrW)iXr;ciZrr<&]rW)QPrW)iXrVuu]!;,FQ!;kpV!;,CU!9WDDq;qYW -qrRkYq;qYWJ`aW-s8W)Ks+C@Op=91qs8N;RV#TT>]` -!W -J,~> -! -!D\jo>D\jo>DZjo>DSjo>DWjp1tL!9WDDk2l[Bjo>D\k5PG\ -jo>D\jo>D[jo>D\jo>D[jo>D[jo>D\k5PG\jo>DUjo>DZjo>D[jo>D\k5PG\jo>DPjo>DZjo>D\ -k5PGPjo>DZjo>D[jo>DRjoYVGjoG5>!!)oY!!)iW!!%T4]]T7ormh%$s8VfCs+C@O#1]OLk2s>W -J,~> -!prN#u!qlBl"XK2F#X8i7kX8i8!X8i7uX8i7kX8i7uX8i7iX8i8" -X8i7rX8i7tX8i7rX8i6OXLtY7mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!PrRq5Orn7>P -o\'9Frn7>Pr7V,Nrn7>PpY#TIrRq5Oqq;,Pg=cQ*g&M-Dg&M-Og&M-Ng&M-Dg&M-Ng&M-Bg&M-P -g&M-Kg&M-Mg&M-Kg&M,(g:Z/>s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!DZjp;%MjoFQ+!9WDDp#Z5Sq<%\Wp>u>TroO1\rT4([roO1\ -o]?,RroO1\r8mtZroO1\pZ;GUrT4([qrRt\k2l[Bjo>DPjo>D[jo>DZjo>DPjo>DZjo>DNjo>D\ -jo>DWjo>DYjo>DWjo>C4k.KjVs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -!PqUtoL -qUtoLq:YfKJ_Icjs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!]` -!M'X8qmo!!)hr!!)ks!!)u!!!*#"!!)u!!!)hr!!*#" -!!)u!!!*#"!!)eq!!)bp!!)u!!!)nt!s#F(!<&u!!:m2k!<&u!!;rnu!:m2k!;EPp!;3Gj!;iht -!;`bs!;W\r!.h5aXT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!W -J,~> -! -!W -J,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!Xs4*qFk2s>WJ,~> -! -!Xs4*qFk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!WJ,~> -!#25dNk2s5TJ,~> -!WJ,~> -! -! -! -!]` -!o@U&X9;\c@6~> -!]` -!]` -!o@U&X9;\c@6~> -!]` -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -! -!<@-<9ENq!JbR%\s8RWO_Z0Xeg4@t/gA'D%JH3Ras7jJ2s6JAB9Q -!!!%N~> -!!)tU"$tIiKDE4Zrrpr*K>%%J^sPGs+:Hfs8UX"rVu`-s8VE8"[S&U@R1!E~> -!!)t_"&.F"Jbd1]rrq,-J\qHeJ_G\/J_KnQs+( -!!)u:"-h>gKDE4Zrrpr*K>%%J^sPGs+:Hfs8UX"rVu`-s8VE8"dI!5[$1Q@~> -!%psoCs!knX6rRLlHr4W.1ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6rRLlHr4W.1ldZ0'`O*":!.Y~> -!%psoCs!knX6qpkZFrk8@3ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6qpkZFrk8@3ldZ0'`O*":!.Y~> -!%psoCs!knX6q:5HD!knX6ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6q:5HD!knX6ldZ0'`O*":!.Y~> -!%psoCs!knX6pso=qs8VE8"[S&U@R1!E~> -! -!%psoCs!knX6q:5Fr!knX6ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6q:5Fr!knX6ldZ0'`O*":!.Y~> -!%psoCs!knX6qpkXtrk8@3ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6qpkXtrk8@3ldZ0'`O*":!.Y~> -!%psoCs!knX6rRLk!r4W.1ldZ/)Mdg-]!.Y~> -! -!%psoCs!knX6rRLk!r4W.1ldZ0'`O*":!.Y~> -! -! -! -!'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"[S&U@R1!E~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!o@9U0U;9E9S~> -!AeUc8%e[a36Pf:#:PQ64~> -! -!EUld'Q2Yb(9E9S~> -! -!\j\5rF5AV!+LNZJcC<$g<#raGpp!7cT~> -!^m$RrGhFo!-*SiJcC<$g<-rc&!5!8;r~> -!cn@\rNu18!47=WJcC<$g<]rj2`k!7cT~> -!\j\5mpZ8_J`_OGJ`bYJ!/p;T!^Qh:J,~> -!^m$Rmr8>$J`_OGJ`bYJ!1!"m!_`UJJ,~> -!cn@\n$E(ZJ`_OGJ`bYJ!6+E6!gE]8J,~> -"?A1:5sb$M!'u1uJ`_OGg#`9mnRDMa!W^d$J,~> -s$Qng9MFtr!).t+J`_OGg#`:"nT"S&!W^s.J,~> -s)S5APa(^F!0i&sJ`_OGg#`:Rn[/=\!W^d$J,~> -">Mnk!!)LSJ\?WJJ\BaM!+PIarrE&KJ,~> -r^?bdn4\DEJ\$EDft%0'nP&r_rn;l~> -rcA)>n -s#L*6!',T1JH16$[fH?VJ,~> -r'Z)9JH16$[fH?[J,~> -rc8*TF+F=B!.b-Z!;tAt~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif deleted file mode 100644 index d0d6031b22..0000000000 Binary files a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png new file mode 100644 index 0000000000..06ff60280f Binary files /dev/null and b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.png differ diff --git a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps b/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps deleted file mode 100644 index 7ad54e9932..0000000000 --- a/lib/et/doc/src/sim_trans_contents_viewer_mgr_actors.ps +++ /dev/null @@ -1,1371 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/sim_trans_contents_viewer_mgr_actors.ps -%%CreationDate: Mon Oct 14 17:26:33 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 406 232 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 217.359744 translate -391.247539 -217.359744 scale -% Image geometry -468 260 8 -% Transformation matrix -[ 468 0 0 260 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 468 string def -/gstr 468 string def -/bstr 468 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 78558 ASCII Bytes -colorimage -!AQV60nB=U!.b-Z!!G#:0ek\=~> -r'Z)9JH16$[fH=oJ,~> -"DW"!C3+q+JH16$[fH>IJ,~> -r]0uYnc&U&JcC<$KDtqba8c/>!]_tqJ,~> -r^?bdnc&U'JcC<$KDtqca8c/>r^;8~> -rcA)>nc&U&JcC<$KDtqba8c/>!cr*tJ,~> -s"OQTs8VWG!53s6J^oD'!56G0s6]pg3B;T~> -s$Qngs8VWC!5=$8J_#J)!5?M-s6]pg6puP~> -s)S5As8VWG!53s6J^oD'!56G0s6]pgF)uj~> -!]^8\n(n&XJ^o>%K@Kt8`SL[8!',Q~> -!^m%gn(IcUJ_#D'K@U%:`S(C1!(;>~> -!cnAAn(n&XJ^o>%K@Kt8`SL[8!- -!\j]Tn(n&XJ^sYJ!6'N>MU_^?`SL[8!',Q~> -!^m%gn(IcUJ_'_L!QriAer/)Z^;\e-_>luS~> -!cnAAn(n&XJ^sYJ!6'N>MU_^?`SL[8!- -!k6dec1lieHNpfe\-`neH)JZJ^s>A!57RPpRLp5s.'&Es.'#D!NZ9O~> -!s-`f=!NlEQ~> -!k6dec1lieHNpfe\-`neH)JZJ^s>A!57RPpRLp5s.'&Es.'#D!NZ9O~> -!k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc5b -! -!k7]eH*Y&iRItJ^$sPQ`P(Qes-2Bj&]K+(eVedneWc5b -!k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!^"!.9HgB2_P`(+C -o@3iSkMGs'p>5P6rS@RV!.Y~> -!g!M1O+HdK%#E -f(YU+f(YU2ecDoRJ,~> -!k7]eH(;LiRIs]HgoPdK6tSf"cJVqeUr5GeHLSPe^];!^"!.9HgB2_P`(+C -o@3iSkMGs'p>5P6rS@RV!.Y~> -!k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o -MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q -[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM[R4NHaL/4HaM>R -`K^=Js4..-!N_4UeIKQ_H[C[ie^^aZH[C[qV#G]E`N4uEMlcp.s,.;eMq,e)H[CCYe\-=CJ^sDC -!57RPpRLp5q4.B>!NZ9O~> -!+uTU&KH?_YV[gY).RTM9=8LM1(5`rmLh+"hKD=ZI5HGIK..n -OaVqhdaF,7\qP^@d\6Ygs2"o$JUN6\qU-aZICdkTV1m?KJ^Vu`OaVqhd].`4d[>O#d[?fW_NB8# -ZI70\NMVX5dKI.0]$d#GI0duHJ^VttJ^U7kIK..mOaVqhdaF,7V2`oSJc!mqN=31KJZcG8J[3_P -_NFeFs3gq,!MtePdLO9ZJUNNldaG:TI=6spU&KHD_QJ`DM6?j+s,@G`NRG\+JUN6\d^FS8J^X2= -!5@XIpR1^*q3h03!NlEQ~> -!k7deHX!NH\8]UV#G]@`VS*mXG_FPMp9eRMgLA`rmh%,"hfP8[+1uOHiM%o -MgL)`e^]S9]n:[=eYN1ks2>,!H[CCYqUHs`HbIt[XFo&UHe$ZcMgL)`eZ=,:eXV!*eXWGc`J](q -[+3]bMl_j8eHER4^"&YPHO.lKHe$Z!He"qkHiM%nMgL)`e^]S9XGbV]Hi)@nM[R4NHaL/4HaM>R -`K^=Js4..-!N_4UeIKQ_H[C[ie^^aZH[C[qV#G]E`N4uEMlcp.s,.;eMq,e)H[CCYe\-=CJ^sDC -!57RPpRLp5q4.B>!NZ9O~> -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk% -Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo -K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5c%CYf -c%CAfc%CA$V#&=b]r\oSH]-.EH],8 -!,tdJUPDTJVC\# -IE'Q`I>OYGL!I\hIDX9dIC?ku^A?,&[XFRhcAACCJUu+hJVC\#IE&jHWm6OfGM2D,T(P.!oTm_?KTm_X?b(58` -c@p\lc@LD#V>AId^952YI>Q7GI>P8OfGM1)hH[_C&,IA)5;oZdHN -kL'?uq9f82o[ -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u1UjJ$,[%t[BH^)4.H`YK:K6rNHH\9S^H[EHFK7gk% -Hc=6^H]+D@K?_A^HbI[^HaLJn^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifVP^CBo -K6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5c%CYf -c%CAfc%CA$V#&=b]r\oSH]-.EH],8 -!s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n -c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g -P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:'n^kPc$OfVc$Of^XF$J^c%CAfc%CB:bm25$ -K7hF$Hc>p-%>0#PK6tS^`I!6^c%CBBbl`lNSA"mG!IL&^c1K6\^$!oGSGC\8SFkA/SGUh;X8mb~> -!Q7pJUP\dcA?t?_Yqa\I?fB/oZdHNkL'?uq9f82o[ -!s..t`2fc,G$^c-:lf`Q`aVc-:lfc)c8^c)c8n -c%CA^c$Of^c%CAfc&6q=^%]bsK6tkVHc=6^Hd/X=SB\-^XNc*V`I!6%]mJ#*H^r?^H`YJEHi)%g -P^EDS(k[1[c%CAfc%CAfc%CAfXF$J^XF%%nK7!=:'n^kPc$OfVc$Of^XF$J^c%CAfc%CB:bm25$ -K7hF$Hc>p-%>0#PK6tS^`I!6^c%CBBbl`lNSA"mG!IL&^c1K6\^$!oGSGC\8SFkA/SGUh;X8mb~> -! -!%Z#cDCGe"/X:oJc!^nQ$rYWs+13q -s+13qs+13qs+(3rV>P`DV9XXCp,spIJ_=i -JHF,JIK%OlIK.UmJc -! -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf -c-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/Tc%CYnK6t<0 -bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c1K6\^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~> -!rfXcH^ulcE;Shr6>\DI>t)'I>srGY'm#AcMrImc5*+%`m2k\J^2Pl -J^2PlJ^2PlJ^1EHU&<49JbIChJcF$qJcF$qJIBc+I@8C'JUPhhJV!UA$&sMYc@pttKmg]5cMrG' -cA?thcGk9hcH^ulr6>PeTm_X?`dOP3cLfB^^AQFRRJ,&/RJG82RJ,)'RJkP7XoNt~> -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L?(8Q;rc-:lf -c-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/Tc%CYnK6t<0 -bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c1K6\^&6FTSG(J5SGC\8SG(M-SGgt=X8mb~> -!DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB? -boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQHH[F#^ -K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c1K6\^&6FTSG(J5 -SGC\8SG(M3SH%. -!RaA,DCPo`lcGTJ]budIAOBTZHBV(IC?_8IC@; -!DR]sN-Eprt%9H[E`Vc%CAfc%CA=[&gXZ[!R/5]mG+5c-:lfUpR51c%CB? -boOKE[*?jJHd0ffHd0ffHd0ffHaLbEH_e$M[*=5MrlkJ%KDWn.K6tkfK6tkfK6tk^H[DQHH[F#^ -K7!C<*/f0FXF#<-XF#T$]r]2tK6su$H^)4.H`YK:K7!UB$)FrA[!R_U[!TK;c1K6\^&6FTSG(J5 -SGC\8SG(M3SH%. -!c2W_% -bnu([c-:lfc-:lfc-U, -ec20 -!+iH`dN9Xb'e]Xb0%SdJUN6Tb(5-?b5[J$ -b5[%mb5[%mb5[%mapbS,J\&^`JUN6Tb(5-Cb5[%ib5[%mb5[%mb5[%mapG5%KsHD`b0#9dprXD] -KmfMcI@86XM1'f/^<3a4J\%\3I>+^#b5[%lap=8`I=[Ztb)MC3b4EaU^AQ7V[eZ0g[eA#@Q1`H& -Q2T#.Q2Jo.XoNt~> -!c2W_% -bnu([c-:lfc-:lfc-U, -ec20 -!iDdo?@9K`74mi!.Y~> -! -!iDdo?@9K`74mi!.Y~> -!`;udJJ]73!!56=q!NZ9O~> -! -!`;udJJ]73!!56=q!NZ9O~> -! -! -! -! -! -! -!!%S&JV/N+YCcfTJ,~> -!!%S$JUrB'YCQZRJ,~> -!!%S&JV/N+YCcfTJ,~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -!!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijTg<\LQ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -!!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijTg<\LQ -JH_bIk2s5TJ,~> -!WJ,~> -!WJ,~> -!^id -JH_bIk2s5TJ,~> -!WJ,~> -!%j440^"f21\k.LbF~> -! -!%j440^"f21\k.LbF~> -!]` -! -!]` -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~> -!Y!!(a,!!(a,qZ$]O!!)rNrW%N'J_K,;s+(?Is5rIT!.Y~> -!T!!(R"!!(R"qZ$]J!!)rIrW%N"J^rc1s+:KNs5rIW!.Y~> -! -! -! -!]` -! -!]` -!%imn']"f21\k.LbF~> -!O -!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_G\/inFE`"ektYk.1PC~> -!%imn']"f21\k.LbF~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -!o@U&X9;\c@6~> -!]` -! -!JHji%s5rIT!.Y~> -! -!]` -! -!]` -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!]` -! -!]` -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -!pufs8LaPJc*CbrrUo*Jc*Cbrs%2Ns5rIT!.Y~> -! -!gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquGr^ -!W];%rN#u!rN#u!JZOF(jfJLMrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquGs7 -!W^pSrRq5OrRq5OJ_G\/jkBb7rn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~> -!gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquGsC -!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!WJ,~> -! -!DWjo>DYjo>DNjo>DWjo>D[joYVG -joG>A!!*#\!!)u[!!*#\!!)0D!W_?_rT4([rT4([J`_OGjlZUCrmh%$rOr72rmh%$rOr72#1]OL -k2s>WJ,~> -! -!PrRq5Orn7>PptG`Jo%F0Gg=cQ*g&M-Og&M,(g4@u>gAh3PgAca'_Z0Z7gAca& -_Z0W?g7eQ/k.1PC~> -!A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^ -!9WDDr8mtZroO1\rT4([roO1\pu_SVo&^#Sk2l[Bjo>D[jo>C4k(2[Vk5YJ\ec1:$^&S-2ec1:# -^&S*:eYN6-k.LbF~> -!WJ,~> -! -!A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\ -!!)u[!s%KG!;tsZ!;P^V!:o7S!9WDDrT4([rT4([J`_OGjlZUCrmh%$rk8@3r71h"rk8@3#1]OL -k2s>WJ,~> -!]` -!s8W)Ps+13es8VuMs+10ds8N;WU&X9;\c@6~> -!A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[ -r;ccX!!)6F!!*#\!!)u[!!)u[!!%T4J`c(Vs8W)Ks+C?bs8VuHs+C]` -! -! -!A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD -qrRq[joG>A!s%KG!;tsZ!<)$[!:AnK!<2*\!<)$[!<)$[!.j9`k2kb*s8LRKKE&Xbs8(:GKE&Xb -rs%#Ls5rIW!.Y~> -!WJ,~> -!PrRq5OmFqF;rn7>PrRq5OJ_G\/jkBb7rn@C'!lG!;q:bk" -s2+g9#25dNk2s5TJ,~> -!A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\ -!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([mH49GroO1\rT4([J`_OGjlZUCrmh%$!knX6q:5Lt -s1SI4#1]OLk2s>WJ,~> -! -!s8W)Ps+(6gs8VlJ -s+(Kns8UfHs5rIT!.Y~> -! -!gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp -rrDPirW)nur;_DMJZRq6s6fm:s+C@Oon*Ras8UWFs5rIW!.Y~> -!gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI -rrDQBrW)oNr;_E&J_K2=s8W)Ps+14MommFds8UfHs5rIT!.Y~> -!gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU -rrDQNrW)oZr;_E2J`c%Us8W)Ks+C@Oon*Ras8UWFs5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!]` -! -!]` -! -! -! -! -! -! -!^MsquDJQ!!)bp!!)bp!!%SOP-"]Ormh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -!^NLquDK*!!)cI!!)cI!!%T(P1os9rn@C's8VfHs+14M -#25dNk2s5TJ,~> -!^NXquDK6!!)cU!!)cU!!%T4P32fErmh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -! -!g&M,(g611is8LaPJcGcD -gAca(rs%2Ns5rIT!.Y~> -!DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C7jo>DJjo>C4k*"m,s8LRKKE(uF -ec1:%rs%#Ls5rIW!.Y~> -!]` -! -!DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4Cth!!)0\!;kpX!<2-[ -!<2-[!;GXR!;u!Y!;kpX!!23^J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!pr2]kuriH,"JZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -!PrRq5Orn7>P -rn7>Pr7V,Np"BBGpY#TIr7V,Nrn@APJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SV[-%AgroO1\rT4([roO1\ -roO1\r8mtZp#Z5SpZ;GUr8mtZroX4\J``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -! -!DWjo>D\jo>D[k555Xk5>;Xjo>C\jo>D[jo>D\jo>DZjp;%MjoFQ+!9WDD -p#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!gPs -"ota+!3E7%orJ,npT+>prN#u!r2]kuJZP$9s6fm:s+C@Op=91qs8N;RV#TT>]` -!gQL -"p!B2!8?-,p"BBGpY#TIrRq5Or7V,NJ_H:@s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'1a!!)u[!!*#\q>gQX -"p!fJ!9WDDp#Z5SpZ;GUrT4([r8mtZJ``-Xs8W)Ks+C@Op=91qs8N;RV#TT>]` -!M'X8qmo!!)bp!!)u!!!)qu!!%SOP-"]Ormh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'1a!!)u[!!*#\ -!!)fV"9@QajoG&9!!)cU!!)u[!!)rZ!!%T4P32fErmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBFg!!)u[ -!!)u[!!)u[!!*#\rr<,_!!)ZR!!*#\!!)oY!!)rZ!!*#\rr@W4P32fErmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!^Msq#LAprrBI.rW)u"rW)nur;cetrr<,%!!)Vl -rW)ktquH\srW!#$!!%SOPH=fPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!^NLq#LBIrrBI\rW)uPrW)oNr;cfMrr<,S!!)WE -rW)lMquH]LrW!#R!!%T(PM6':rn@C's8VfHs+14M#25dNk2s5TJ,~> -!^NXq#LBUrrBIhrW)u\rW)oZr;cfYrr<,_!!)WQ -rW)lYquH]XrW!#^!!%T4PNMoFrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -! -! -! -! -! -!s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -!;Zk5GA[k5G@Wjo>C4k(2[Ik5YJ\ec1:%s7Y"CKE(rUeYN6- -k.LbF~> -!]` -! -!D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rrAkW!!%T4J`bVIs8W)Ks+C@O -p=91qs8N;RV#TT>]` -!]` -!.H!!V'V!87DQrn@>O$JGI[g=cN,g=cN,J_HpRs8W)Ps+14Mp=fOts8N;W -U&X9;\c@6~> -!D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3>8[!<)'[!<;3]!<)'Y -!<2-\!!)0\!;u!W!;>RT!!VKb!9O7]roX1[$K_]` -!]` -! -!]` -!llqXK2E'X8o=%r2]kurN-#!JZPQHs6fm:s+C@Op=91qs8N;RV#TT>]` -!PrRq5O -rn7>PnCe-Jg=cP\g&Th,r7V,NrS%8OJ_HgOs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDUuhXWq<%\Wp>u>TroO1\rT4([ -roO1\nE'uVk2l[+joFNDr8mtZrT=+[J``Zgs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!jo>DWjo>DWk555Yjo>D[jo>D[ -k5>;Pjp1tLjoFQ+!9O:Zjo>D[jo>C4k+Ll:s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!WJ,~> -! -!DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&hW!!)iW!!)lX!!)u[!!*#\!!)u[ -!!)iW!!)]S#QX#L!9WDDjoG>A!!)u[!!%T4T]Z:Srmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!]` -! -!DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF]jo>D\jo>D[jo>DXjo>D\ -k5PG\jo>D[jo>D\jo>D[jo>DSjp;%MjoFQ+!9WDDroX4\rT4([J``Wfs8W)Ks+C@Op=91qs8N;R -V#TT>]` -!]` -! -!;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF\k5GAZk5>;Wk5G>_jo>DDrW)u\ -rW)u\quHEPrW!2c!!)-]!9WGC!!23^roX.ZJ``]hs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -! -! -! -! -!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -!:Q`!.ijTgABV(s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!:2k3_:2!:T(L!;kpX!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!XT._fec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -!C4k3h@3!:AnK!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -!g4=h/g&Tj\!8?-,g&V$(!!)uOrrAMArr<8W!!(^Q!8@DPs4[GPp"K -!DWjo>C4k*bB3s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -!P -rRq5Orn7>Pqq;#Mq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>D[k5PFLk5PDdjo>DD!9WDDrT4([p#Z5SrT4([roX4\roO1\ -rT4([roO1\qrRkYq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -!Pr7V,N -r7V,Nq:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZ -r8mtZq;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -! -!D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZ -q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!]` -!PrRq5Orn7>Pp=]KH -q:YfKJ_HOGs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D[jo>DYjo>CFjothJjoFQ+!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>T -q;qYWJ``B_s8W)Ks+C@Op=91qs8N;RV#TT>]` -!XT._fec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!DZjo>D[jo>DZk5PFLjothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[ -!<)$[!;tsZ!;YaW!.j:#k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!;Wk5PFMk5G>ajo>DD!!)u[!!)WQquH`YrW)u\rW)oZr;cfYquH]X -quD<1S*'bNrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -!]mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!^ids8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -!^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u! -!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl -!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YsqQ'YsrN#u!ri?)"rN#u!]r_8%rmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO -!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE -!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLqUtoLrRq5Orn7>PrRq5O^"WMdrn@C's8VfH -s+14M#25dNk2s5TJ,~> -!]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[ -!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ -!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXqW7bXrT4([roO1\rT4([^#o@prmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!WJ,~> -!PrRq5O^"WMdrn@C's8VfHs+14M#25dNk2s5TJ,~> -!D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[ -!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5> -!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYq;qYWrT4([ -roO1\rT4([^#o@prmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!m!;W\r!55K6mf(c:KE(uFec1:% -rs%#Ls5rIW!.Y~> -!PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq -!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;+tF!;Y=K!57+ds8LaPJcGcDgAca( -rs%2Ns5rIT!.Y~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[ -\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4 -!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;,CR!;YaW!57Ops8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!c2 -rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr -!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4qX8i7rX8i75XT._fec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK -!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Jg&M-Kg&M,cgAh3PgAca(s7Y1H -JcG`Sg7eQ/k.1PC~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl -rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW -!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAVjo>DWjo>Cok5YJ\ec1:%s7Y"C -KE(rUeYN6-k.LbF~> -!]` -! -!D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[ -jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO -jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!)oY!!)iW!!'Xns8W)K -s+C@Op=91qs8N;RV#TT>]` -!]` -! -!;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[ -!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV -!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!)rZ!!)iW!!'Ums8W)Ks+C@Op=91qs8N;RV#TT>]` -!m!;EPp!;!;h!;W\r -!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<&u!!;W\r!4f32mf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX -!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW -!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<)$[!;YaW!4h7ls8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp -!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY -!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!<2*\ -!<)$[!<2*\!<)$[!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W -!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y -!<)'X!;kpX!<)'W!<2-X!57Ops8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5& -XIZHmmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT -g7?sts8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9` -k+1Z7s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\ -!<2*e!9WDDk2l[+joGDCrr@W4J``Ncs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC -#ls,M!9WDDk2l[Bjo>DZk5PF4k(2Zjk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -! -! -!DYk5>:2k(2Zb -k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -!D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z -!<2*\!;u!Z!.j9`k+q/>s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4 -J``cjs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!DFjo>DEk5>:ejo>D5jo>C4k*P61s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!DVjo>DEjo>DFjo>Ccjo>DGjo>DMjo>C4k*Y<2s8LRKKE(uFec1:%rs%#L -s5rIW!.Y~> -! -!g&M-Ag&M,(g6gUos8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!DVjo>D+jo>CJjo>DMjo>C4k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!Urmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!DVjo>DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DTk5,/Xk5PG]k5PG[k5>;Z -k5PDbjo>DD!!)cUrr;Pk555Yk5PDbjo>DD!!)u[ -!!%T4R-+GKrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!+!!')#XK2C%ri?)"rN#u!ri?)"ri?)"rN#u!qlBbtr2]ku -rN#u!oW/#mqQ0\s"KVS'X8r4#!!%SOR&p>Urmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!Y!!(^Qg=cN,rn7>PrRq5Orn7>Prn7>PrRq5Oqq;#Mr7V,N -rRq5Oo\'9FqV(rL"PNhUg&V**!!%T(R+hT?rn@C's8VfHs+14M#25dNk2s5TJ,~> -!DVjo>DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\oB$#QqW8%`joFQ+ -!9WDDrT4([roX4\"Qf[ajoG,;rr<>e!!)-]k2lXDroO1\rT4([roO1\roO1\rT4([qrRkYr8mtZ -rT4([o]?,RqW@eX"Qf[ajoGAB!!%T4R-+GKrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!poW/#mqQ'l$XK2E'X8r1" -!!%SORB6GVrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -!DWjo>DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DQjo>DXk5PGZjo>DYjp;%M -joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2*\!;ts]!9WDDp>u>TpZ;GUo]?,RqW7t^k2l[+joG>A -!!%T4RHFPLrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!m!;`c$!3E7%XK2F#X8i6O -XI-*hmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DVjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DQjo>DXjo>DYjo>DYjp;%M -joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2-W!<2-Z!;bgX!;kpV!;,CR!;bg^!9WDDk2l[Bjo>C4 -k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!m!;iht!;rnu!<&u!!;*>m!;`c$!3E7%XK2F# -X8i6OXI-*hmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DVjo>D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DQjo>DXjo>DYjo>DYjp;%M -joFQ+!9WDDp>uY]k2l[+joFQ+!<)$[!<2*\!;,CR!;kmY!;tsZ!<)$[!;,CR!;bg^!9WDDk2l[B -jo>C4k*Y<2s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!m -!<0&"!<0&(!3E7%XK2F#X8i7rXT&9OXJ2frmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DVjo>DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGQjo>DXjo>DXjo>D[jo>D\ -jothJjoFQ+!<)'[!;tsc!9WDDk2l[+joGAB!!)u[!!)u[!s%KG!<)$[!;kmY!;tsZ!<2-\!;,CR -!<2*\!<2*b!9WDDk2l[Bjo>DWk5PF4k+_# -! -!Ns4[GPrS%2Mrn@8Mr7_&KrS%5N!nmVSo\09Ern@>O"kiqVg&M-Pg&M-K -gA_/(g7m=$s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!DVjo>DYk5>;Yk5>;Wk555Xk5G>]joG):quH]Xr;c`Wr;ciZrW!,a!!)-] -!<2-\!<)'Z!!D?`!9X1Zs5s:\rT=%YroX+Yr9!nWrT=(Z!p0I_o]H,QroX1["m,dbjo>D\jo>DW -k5PF4k+_# -! -! -!DVjo>D:jo>D.k5PF[jo>DXk5PF4k+Ur;s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!DD-jo>C[jo>DWjo>C4k+Ll:s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -!g@tZ!g4J&Ys8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!;Yk4eqJk4eq-k(;aqs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -!DFjo>C_k5PG;jo>C4k(2[mk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DEjo>DGjo>D"jo>DMk5GAXk5GAWjo>C4k(2[nk5YJ\ec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -! -!D,jo>D"jo>DKjo>DWjo>DXjo>C4k(2[nk5YJ\ec1:%s7Y"CKE(rUeYN6- -k.LbF~> -!W -J,~> -! -!DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DTk555Wk5>;Qk5PDcjo>DD!!)0\ -!<;3\!;5LP!<2*]!9X7\qr[kXqW7bXq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OLk2s>W -J,~> -! -! -!DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\o]?,RqW7bXrT4([p#c8S -#Nc!djoFQ+!<)$[!;5IS!<)$[!<2-\!<2*\!<)$[!<2*\!;kmY!;YaW!;bgX!.j9`k5FHBs8LRK -KE(uFec1:%rs%#Ls5rIW!.Y~> -!WJ,~> -!Pr7V,Nr7V,Nq:YfKq:YfKJ_G\/rn@DPrn@C's8VfHs+14M -#25dNk2s5TJ,~> -!DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjp;%MjoFQ+ -!9WDDrT4([p#Z5Sq;qYWrT4([roO1\r8mtZr8mtZq;qYWq;qYWJ`_OGroX7\rmh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -!WJ,~> -! -!D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjothJjoFQ+ -!<2*_!9WDDoB,uOrT4([rT4([roX%Wr8mtZq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!WJ,~> -!PrRq5Orn7>Pp=]KHq:YfKqUtoLJ_G\/rS%;Orn@C's8VfHs+14M#25dN -k2s5TJ,~> -!D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DRjo>DYjo>DYjo>DTjothJjoFQ+ -!<2*_!9WDDn)aTMroO1\rT4([roO1\p>u>Tq;qYWqW7bXJ`_OGrT=.[rmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -! -! -!DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGRjo>D\jo>D\jo>D[jo>DZk5PGZ -jothJjoFQ+!<)'[!;#=Q!<)$[!<2*\!<)$[!<)$[!<)$[!;tsZ!;YaW!;bgX!;YdW!.j9fk5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DYk5>;Yk5>;Wk555Xk5G>]joG#8rW)lYr;c`WrrE#[rW!,a!!)-]!<)$[ -!;#@N!<2-[!<;3\!<)'Y!<)'X!<)'X!;tsZ!;YdW!.j9fk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!]s8LaPJcGcDgAca(rs%2Ns5rIT -!.Y~> -!D:jo>D@k5PGNjo>D!jo>DXk5PF4k(`$us8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!DD?jo>DMjo>D"jo>DWjo>C4k(Vsts8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!;Yk4er3k5>;Yk4eq-k(2[=k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -!DFjo>C4k+Uo;!8ci -! -! -!DEjo>D,jo>DEjo>DEjoYVGjoGDCrW)u\rW)!@!!'q!!!)cU!!(mDVjo>DOk5YJ\ec1:%s7Y"CKE(rU -eYN6-k.LbF~> -! -!]J -rn7DRg&V$(!W^pSqUu#Og=cQ(g&M-Jg&M-CgAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!Cfjo>DEjo>DEjoYVGjoGABrrE&\!!)$@!!'q!!!(+&!!([6!W_?_puVPV -roO7^joG;@!W_?_qW7k[k2l[@jo>DVjo>DOk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!DYk5>;Yk5PG]k5PG[k5GAXk5G>^jo>DRk5G>]joGDCr;ciZrr<&]rW)oZ -quHWVrW)r[rr<&]rW)oZquHZWquHBO!s%KG!<)$`!9O:DjoG>ArW)r[rW)r[rW)]TquH]XrrE)] -rrE#[r;ciZrr<&]rW)lYquH]Xr;c`WrW!&_!9WGA!;u!Y!;kpW!<2-\!!)0\!;#@P!;kpX!!23^ -o]H,Qqr[eVo]?5Uk2l[>jo>DYjo>DWjo>DXjoYVGjoG;@!!)fV!!)QOs8W)Ks+C@Op=91qs8N;R -V#TT>]` -!pr2]kurN#u!riH,"ri?)"nuMfkr2]kuriH,"nuMfkr2]kurN#u!oW/,pXK2Et -X8i7tX8i7rX8i7sX9/I(X8r.!!!)eq!!)Pjs6fm:s+C@Op=91qs8N;RV#TT>]` -!PrRq5Oq:YfKrn7>Prn@APrn7>PrRq5OqUtoLrRq5Oo\'BIg=cQ*g'%K1!8?-,rRq5O -rn7>Prn7>Pr7V,Np"BBGq:Z)Sg&Tj\!8?-,rRq5Orn@APrn7>Prn7>PrRq5Orn7>PrRq5OrRq5O -rn@APrn7>PpY#TIr7V,NrRq5Orn@APrn7>Po%F'Dr7V,Nrn@APo%F'Dr7V,NrRq5Oo\'BIg=cQ& -g&M-Mg&M-Kg&M-Lg&h?/g&V$(!!)fJ!!)QCs8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!DZjo>D[jo>D[jokbI!9WDDr8mtZr8mtZroX4\o]?,RroX4\s5j:]rT4([ -roX4\roO1\rT4([q;qYWroO1\roX4\roO1\rT4([qW7bXrT4([o]?5Uk2l[BjokbI!9WDDrT4([ -roO1\roO1\r8mtZp#Z5Sq;qq_joFQ+!9WDDrT4([roX4\roO1\roO1\rT4([roO1\rT4([rT4([ -roX4\roO1\pZ;GUr8mtZrT4([roX4\roO1\o&]oPr8mtZroX4\o&]oPr8mtZrT4([o]?5Uk2l[> -jo>DYjo>DWjo>DXjoYVGjoG;@!!)fV!!)QOs8W)Ks+C@Op=91qs8N;RV#TT>]` -!m!<0&"!;rnu!<0&"!;EPp!<&u!!;ii"!3E7%rN#u!nuMfkrN#u! -r2]kunuMfkr2]kun>lTiri?)"q5aPrqlBbtq5aPrn#QKhq5aPrnZ;cYrmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!Pr7VGWg=cP\g&Tj\!;5%G!;Y@K -!;>+H!<1[P!<(UO!<1[P!;+tF!<1[P!;tON!<1[P!;G1I!<(UO!;kIP!8?-,rRq5Oo%F'DrRq5O -r7V,No%F'Dr7V,NnCdjBrn7>Pq:YfKqq;#Mq:YfKn(IaAq:YfKn_4$Crn@C's8VfHs+14M#25dN -k2s5TJ,~> -!DZjo>DYjo>D\k5PGVjo>D[jo>DZjo>DSjo>DZjoPPF!;km\!9WDDrT4([ -rT4([qW7bXr8n(]k2l[Bjo>D[jo>DXjo>DEjokbIjoFNDroO1\r8n:ck2l[+joFQ+!;5IS!;YdW -!;>OT!<2*\!<)$[!<2*\!;,CR!<2*\!;tsZ!<2*\!;GUU!<)$[!;km\!9WDDrT4([o&]oPrT4([ -r8mtZo&]oPr8mtZnE']NroO1\q;qYWqrRkYq;qYWn)aTMq;qYWn`KlOrmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -!gPs!!)u!!!)u!!!)hrr;c/b"TYX*!3?2"XSMqsX9J[+X8o?'!;3Dn!;W\r!;W_o!<0&" -!<&u!!<'"t!;rqr!<0&"!;NVq!;EPp!<&u!!;ii"!3E7%rN#u!nuMfkrN#u!r2]kunuMfkqlK_r -oW/#mri?)"qQ'YsqQ'Ysq5aPrn>lTipoFGqnZ;cYrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!gQL!!)uO!!)uO!!)iKr;c0;"T[91!87GPgA1gLg'.Q2g&Tj\!;5%G!;Y=K!;Y@H!<1[P -!<(UO!<(XM!;tRK!<1[P!;P7J!;G1I!<(UO!;kIP!8?-,rRq5Oo%F'DrRq5Or7V,No%F'DqqCuK -o\'9Frn7>PqUtoLqUtoLq:YfKnCdjBpt>]Jn_4$Crn@C's8VfHs+14M#25dNk2s5TJ,~> -!D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DSjo>DXjo>DYjoYVGjoGAB!!)u[ -!!)lXq>gQX!!)u[!!)u[!!)iWr;c0G"T[]I!9O:\k5#)XjothJjoFQ+!;5IS!;YaW!;YdT!<2*\ -!<)$[!<)'Y!;u!W!<2*\!;P[V!;GUU!<)$[!;km\!9WDDrT4([o&]oPrT4([r8mtZo&]oPqr[hW -o]?,RroO1\qW7bXqW7bXq;qYWnE']NpuVPVn`KlOrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!M'X8qmo!!)hr!!)ks!!)u!!!*#" -!!)u!!!)hr!!*#"!!)u!!!*#"!!)eq!!)bp!!)u!!!)nt!s#F(!<&u!!:m2k!<&u!!;rnu!:m2k -!;EPp!;3Gj!;iht!;`bs!;W\r!:[&i!;NVq!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!!!*#PrrE&P!!)fJ"9@-Ug&Ud!!!)iK!!)lL!!)uO!!*#P -!!)uO!!)iK!!*#P!!)uO!!*#P!!)fJ!!)cI!!)uO!!)oM!s%'/!<(UO!:nhD!<(UO!;tON!:nhD -!;G1I!;5(C!;kIM!;bCL!;Y=K!:\\B!;P7J!:eeCs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!D[jo>DYjo>D\jo>DUjo>D[jo>DZjo>DSjo>DXjo>DYjoYVGjoGAB!!)u[ -!!)lX!!)iW!!)u[!!)u[!!)]S!!)BJ!!*#\rrE&\!!)fV"9@QajoG&9!!)iW!!)lX!!)u[!!*#\ -!!)u[!!)iW!!*#\!!)u[!!*#\!!)fV!!)cU!!)u[!!)oY!s%KG!<)$[!:o7P!<)$[!;tsZ!:o7P -!;GUU!;5LO!;kmY!;bgX!;YaW!:]+N!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!m!<0&"!<&u!!;`bs!<0)"!<0&"!<&u!!<0&"!<&u!!<0&"!<0)"!<&u!!<&u! -!<0&"!<0&"!;iht!;rnu!<&u!!<0&"!<&u!!:m2k!;rnu!<0)"!:m2k!;rnu!<&u!!:d,j!;`bs -!;`bs!;W\r!:[&i!;NVq!:d/jmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DZjo>D[jo>D[jo>DUjo>DZjo>D\k5PGRjo>D[joYVGjoGAB!!*#\!!)u[ -!!)u[!!*#\!!)u[!!)u[!s%KG!<)$[!<)$[!<2*\!<2*\!<)$[!;u!Z!;#=Q!<2-\!<)$[!<)$[ -!<2-\!!;9_!;,CR!<2*\!<)$[!;bgX!<2-\!<2*\!<)$[!<2*\!<)$[!<2*\!<2-\!<)$[!<)$[ -!<2*\!<2*\!;kmY!;tsZ!<)$[!<2*\!<)$[!:o7P!;tsZ!<2-\!:o7P!;tsZ!<)$[!:f1O!;bgX -!;bgX!;YaW!:]+N!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DYk5>;Yk5>;Wk555Xk5G>]joG#8r;cfYr;ciZrW)u\rW)oZrW)iXr;cl[ -rW)u\rW)oZrW)oZquHWVrrD]RrW)r[!!)rZr;cfYrr<,_!!)WQrW)oZr;c`WrW!&_!!)0\!<;3\ -!<;3Z!;u!Y!!;9_!<)'Y!;u!Y!;u!W!<)'Y!<2-[!<;3\!;5LP!<)'Z!!;9_!;5LP!<2-Y!:f4N -!;kmY!;u!W!<)'X!:o7P!;P[V!:f4Os8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!D:jo>C_k5PF4k(2[njo>DVjo>DOk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!DC^jo>C4k(2[njo>DWk5GANk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!;Yk4eq-k(2Z\k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!Xs4*qFk2s>WJ,~> -! -!Xs4*qFk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!t$^&S*:eYN6-k.LbF~> -! -!t$^&S*:eYN6-k.LbF~> -! -! -! -! -!o/`_Z0W?g7eQ/k.1PC~> -! -!WJ,~> -!#25dNk2s5TJ,~> -!WJ,~> -! -! -! -!]` -!o@U&X9;\c@6~> -!]` -!]` -!o@U&X9;\c@6~> -!]` -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -!!)uB".[noKDE4Zrrpr*K>%%J^sPGs+:Hfs8UX"rVu`-s8VE8"e -!!)u?".@koJbd1]rrq,-J\qHeJ_G\/J_KnQs+( -!!)uB".[noKDE4Zrrpr*K>%%J^sPGs+:Hfs8UX"rVu`-s8VE8"e -!%psoCs!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6rRLlHr4W.1ldZ0/c+Uf\!.Y~> -!%psoCs!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6qpkZFrk8@3ldZ0/c+Uf\!.Y~> -!%psoCs!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6q:5HD!knX6ldZ0/c+Uf\!.Y~> -!%psoCs!knX6pso=qs8VE8"e -! -!%psoCs!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6q:5Fr!knX6ldZ0/c+Uf\!.Y~> -!%psoCs!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6qpkXtrk8@3ldZ0/c+Uf\!.Y~> -!%psoCs!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~> -!0P!.Y~> -!%psoCs!knX6rRLk!r4W.1ldZ0/c+Uf\!.Y~> -! -! -! -!'as8RZ#J^o>%psoCs!knX6rIamYs8VE8"e -! -! -!0P!.Y~> -! -! -!0P!.Y~> -! -! -! -! -! -! -! -! -!o@REE+PR/ha~> -! -! -!Tn/ngU"Q+>](26hb5SsQR/ha~> -! -!]^8*rOqgI!53s`JcC<$g<erk/B'!7cT~> -!^m%2rOVUC!4ma]JcC<$g<brji0!!8;r~> -!cn@drOqgI!53s`JcC<$g<erk/B'!7cT~> -!\j]"n%A^kJ`_OGJ`bYJ!6suG!h98@J,~> -!^m%2n%&LeJ`_OGJ`bYJ!6XcA!gs&BJ,~> -!bq_[n%A^kJ`_OGJ`bYJ!6suG!h98@J,~> -s#C,\S=K,_!1\W&J`_OGg#`:Zn\+sm!W^d$J,~> -s$QngR@3TV!1AE#J`_OGg#`:Wn[eag!W^s.J,~> -s)S5AS=K,_!1\W&J`_OGg#`:Zn\+sm!W^d$J,~> -r\=EQn=5'CJ\?WJfY-gFrrE&KJ,~> -r^?bdn -rcA)>n=5'CJ\?WJfY-gFrrE&KJ,~> -r](!63Iq0]!.b-Z!<:RNs4,YM~> -r'Z)9JH16$[fHH^!W^s.J,~> -r,[DhJH16$[fHHY!W^d$J,~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/sim_trans_mgr_actors.gif b/lib/et/doc/src/sim_trans_mgr_actors.gif deleted file mode 100644 index b954a45bba..0000000000 Binary files a/lib/et/doc/src/sim_trans_mgr_actors.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans_mgr_actors.png b/lib/et/doc/src/sim_trans_mgr_actors.png new file mode 100644 index 0000000000..e42e82adad Binary files /dev/null and b/lib/et/doc/src/sim_trans_mgr_actors.png differ diff --git a/lib/et/doc/src/sim_trans_mgr_actors.ps b/lib/et/doc/src/sim_trans_mgr_actors.ps deleted file mode 100644 index 9bfa4ab544..0000000000 --- a/lib/et/doc/src/sim_trans_mgr_actors.ps +++ /dev/null @@ -1,1705 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/sim_trans_mgr_actors.ps -%%CreationDate: Mon Oct 14 17:07:53 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 443 371 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 356.135581 translate -428.031496 -356.135581 scale -% Image geometry -512 426 8 -% Transformation matrix -[ 512 0 0 426 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 512 string def -/gstr 512 string def -/bstr 512 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 92674 ASCII Bytes -colorimage -r.BP#JH16$MZE\TJ,~> -r.0D!JH16$MZE\TJ,~> -r.BP#JH16$MZE\TJ,~> -rk8=3nc&U&JcC<$JcF@%!56GQquD6~> -rke[8nc&U'JcC<$JcF@%!5?MRquD6~> -rk8=3nc&U&JcC<$JcF@%!56GQquD6~> -s1JI6s8VWG!53s6J^o>%f@9l7a56ja!W`9#J,~> -s2"g;s8VWC!5=$8J_#D'f@Br9a4gR]!W`9#J,~> -s1JI6s8VWG!53s6J^o>%f@9l7a56ja!W`9#J,~> -!keU6n(n&XJ^o>%J^rB&!56A.!lY0>J,~> -!l=s;n(IcUJ_#D'J_&H(!5?G+!l=s;J,~> -!keU6n(n&XJ^o>%J^rB&!56A.!lY0>J,~> -!keU6n(n&X\((JtJ^o>%U=B7W`SL[8!<7Q~> -!l=s;n(IcU\(1T&dXfu#et^dr^;\e-_>sUd~> -!keU6n(n&X\((JtJ^o>%U=B7W`SL[8!<7Q~> -!k7Kec1lieHNpfe\-`neH)JZJ^oY.!57RPpRLp5s.'&Es.'#D!NZ9O~> -!s-`f=!NlEQ~> -!k7Kec1lieHNpfe\-`neH)JZJ^oY.!57RPpRLp5s.'&Es.'#D!NZ9O~> -!k7]eH*Y&n^[Z(hUN4WHaM=]Hc=O"Ph"<:He$Zc]tMqs`P(Wg!jm -! -!k7]eH*Y&n^[Z(hUN4WHaM=]Hc=O"Ph"<:He$Zc]tMqs`P(Wg!jm -!k7]eH(;LbgclTPh"<:Hi)=sK6u/!K6t;^!J>abeH(nmJ^o\/!57RPpRLs6 -pRM3=!NZ9O~> -!g!M1O*5dK%#Ef(YU+f(YU2 -ecDoRJ,~> -!k7]eH(;LbgclTPh"<:Hi)=sK6u/!K6t;^!J>abeH(nmJ^o\/!57RPpRLs6 -pRM3=!NZ9O~> -!k7deHX!NH\8]UV#G]@`V\15S9qs"eZ=DRK6u/!`J](q[+27)`RUK*`RUKS -e]!GnK='1ZMi4ZprRD%aHbIt"rd+pqK6u/!K6u.Erd4[a%#]Ib[+3]bMl_ieK7!LGs,.8uK6su4 -K6suUe]!dOHiMXrMZKo;qUH(pP^@b8`RWM?MgKf/c(t>c"i[R$H],!)ec1O9XGbWJMgKf'^"'fC -]n+^meH!;GhY3Q5hYE]>h>s\XJ,~> -!+uTU&KH?_Y_b/R=2Zpd\VZGJUu7t_NB8#ZI5b$_U=j#_U=jG -d__,pKsK.TNK'corR(h[ICdjprd>'pJUu7tJUu7CrdFg`%$>slZI70\NMVW_JV!^Hs,@DpKn6D8 -Kn6PXd__.FIK.aqN<,l8qU,knOb%q?^=(H4M1'f/b+\f_"i@F!I>P-+df5:8V2`p?Ob%q7[aMU4 -\q/:gdK%#Ef(YU*f(ka3ecDoRJ,~> -!k7deHX!NH\8]UV#G]@`V\15S9qs"eZ=DRK6u/!`J](q[+27)`RUK*`RUKS -e]!GnK='1ZMi4ZprRD%aHbIt"rd+pqK6u/!K6u.Erd4[a%#]Ib[+3]bMl_ieK7!LGs,.8uK6su4 -K6suUe]!dOHiMXrMZKo;qUH(pP^@b8`RWM?MgKf/c(t>c"i[R$H],!)ec1O9XGbWJMgKf'^"'fC -]n+^meH!;GhY3Q5hYE]>h>s\XJ,~> -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifV -P^CBoK6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5 -c%CYfc%CAfc%CA$V#&=b]r\oSH]-.EH],8 -!OfGM2D,T(P.!oTm_?KTm_X? -b(58`c@p\lc@LD#V>AId^952YI>Q7GI>P8OfGM1)hH[_C&,IA)5; -N6VF;kL'?uq9f82o[ -!U4eH!;\bmMFBK>!Lr`Pm1N^&#u$[!S%^c%Dh:K6tk^K7gk%Hc<[FXNcBEXNcC)`IifV -P^CBoK6rNPrQQOVHc=7KH[EHNK6tkfK6tk^H[EHFK7gk%Hc=6^H]+]EMhCoO(P@'mS9oU@S9on5 -c%CYfc%CAfc%CA$V#&=b]r\oSH]-.EH],8 -! -!+*+IEJ^@TusNd -Y0MTHb5BNcQ$rYWs+13qs+13qs+13qs+(R'Y'm"dY'mIuJUP]8c5(tZb0GQdb0GQhcE_khcH_,l -cH^uhb4j0d_S1STc@p\`r6G=n'$c>^`m2SPM9aCtIEKj\M1(r3rQYFlQ%@5>c2bTAdK#^2dK#^- -defI0dK-KNJ,~> -! -!aubmD@RH[C[ac-:U"J^'.u!58<\!582u!58*V!1`l8!1``4 -q4.B5!NZ9O~> -!ttdc@(t/cA^$K^AQCZ](q`o](XPPRJG82RJ##( -RJbJ6XoNt~> -!aubmD@RH[C[ac-:U"J^'.u!58<\!582u!58*V!1`l8!1``4 -q4.B5!NZ9O~> -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L? -(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/T -c%CYnK6t<0bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c&BmI^&6FTSG(J5SGC\8SG(M-SGgt= -X8mb~> -! -!BK6tkEH^t#Y$`&--Uo\p$Us5ufSG^V4K7!L? -(8Q;rc-:lfc-:lfc-:lfc-:lfc)c8^r657pHhP]!K6tkfK6tkfK6tkEH^r@*H[F#^K7!C<$&a/T -c%CYnK6t<0bmf;Pc%CA^c,G$^c-:lfr65JcUjIa=`I",+c&BmI^&6FTSG(J5SGC\8SG(M-SGgt= -X8mb~> -! -! -! -!:M%c)chMH],kf["E_=XFkkPXT$HFK7!UB#aBsgH^)LoMi3/2Mp278r7(e\q4%Gu -p=8o-p!s)4rRLq -! -!:M%c)chMH],kf["E_=XFkkPXT$HFK7!UB#aBsgH^)LoMi3/2Mp278r7(e\q4%Gu -p=8o-p!s)4rRLq -!$!NZ9O~> -! -!$!NZ9O~> -! -! -! -!K6r6HJ]32ZeAVF$`6A=a!.Y~> -! -!K6r6HJ]32ZeAVF$`6A=a!.Y~> -! -! -! -!!%S&JV/N+K7a.(J,~> -!!%S$JUrB'K7O"&J,~> -!!%S&JV/N+K7a.(J,~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -! -!:!<(IH!7TKs!;Y1F!!:[N!:eV>!9Vi-!!^sR!7fU"!9Vi3!<1OK -!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -! -!:!<(IJ!7KEt!<:UL!;b7G!!:[N!:eV>!9Vi3!;b7G!<:UL!9Vi3 -!<1OK!;Y1F!.i[Oe`bQ`K*A(Nk2s>WJ,~> -!]` -! -!]` -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N -k2s>WJ,~> -!No\0No\0 -!ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(N -k2s>WJ,~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~> -!_)\!!(a,!!(^Q!87DQg=cN,J_G\/n(Rem"ektYk.1PC~> -!ec,XIec,XLec,U[eGoU"!!(OL!7fU"!7_&Lqpk]Hs4.,Ls4.,L!7h&Ko%!X<'%Hs^ -eGoU"eGoU"eGoU"eGoU"rW)N>q>_)W!!(R"!!(OL!7_&Le^XX"J^o>%n(%Gj"f21\k.LbF~> -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~> -! -! -!;tCI!<:UL!!^sR!7_&Leb]=JeGoUHec,XLec,XLec,UNeGoU>ec,XJec,UTeGoU"eGoU"eb]=J -eGoU>ec,XKec,ULeb]=QeGoU"!!(R"!!%T#J^s5>s+:KNs5rIW!.Y~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~> -!s4[JQ!nmVSqqD&M$/,@Zg&M-,g&M-NgA_0CgA_0N -gA_0QgA_-Yg&M-,!!(^Q!;tRN!;kLM!<:dQ!<:dQ!!:jS!:eeC!<(XO!".E[!8?-,!8?-,!;tRN -!:eeC!<1^P!!:jS!;tRN!!_-W!8?-,!.ijTg@*bqJH_bIk2s5TJ,~> -!ec,XI -ec,XLec,UTeGoU"!!(OL!;tCI!;k=H!<:UL!<:UL!!:[N!:eV>!<(IJ!".6V!7fU"!7fU"!;tCI -!:eV>!<1OK!!:[N!;tCI!!^sR!7fU"!.i[OeaM&gK*A(Nk2s>WJ,~> -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W -J,~> -! -!rmh#K#1W\Re^XX"rmh#Ks4.,Lrmh#Ks4.,L -!n@8NnC@O=s4.&Js4.,L(tATdeGoU"!!(R"!!(OL!7fU"!7fU"!7h&Ks4.,L!n@8Nn^[X>rRLoJ -#LreSe^XX"ec#RKec,UNeGoU>ec,XKec,UVeGoU"eGoU"!!(RK!!:[N!.i[OeaM&gK*A(Nk2s>W -J,~> -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~> -! -!!<(IJ!!:[N!<1OK!<:UJ!<:UL!:eV>!<1OK -!<:UJ!<:UL!!UmQ!7_&LJ^o>%ma_>i"f21\k.LbF~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -!Uc`!;>.H!;P:J!!:jS!;kLM!9`)9!.ijTg@ -!]` -!]` -!Ucc!<:dQ!;G4I!;5(G!;kLM!9`)9!.ijTg@ -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!%n^Rf=s5rIW!.Y~> -! -!%n^Rf=s5rIW!.Y~> -! -! -! -! -! -! -! -! -! -!WJ,~> -! -!WJ,~> -!%e("Vt -s5rIW!.Y~> -! -!%e("Vt -s5rIW!.Y~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!]` -!LZgU&X9;\c@6~> -!]` -!WJ,~> -! -!WJ,~> -!]` -!LZg -U&X9;\c@6~> -!]` -! -! -! -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -!%J^sbM"f21\k.LbF~> -! -!%J^sbM"f21\k.LbF~> -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -!%J^sbM"f21\k.LbF~> -! -!%J^sbM"f21\k.LbF~> -!WJ,~> -!.H!<1^P!<:dQ!.ijTg4@uWg'+2Mk2s5TJ,~> -!WJ,~> -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT> -]` -! -!m9j1YKmp!j(qs7OqBKE(t&e`YHdV#TT> -]` -! -! -! -!m9j1PHmjFdL4J^rr6"f21\k.LbF~> -! -!m9j1PHmjFdL4J^rr6"f21\k.LbF~> -!n&_uG; -! -!n&_uG; -! -! -! -!%"f21\k.LbF~> -! -!%"f21\k.LbF~> -!%"f21\k.LbF~> -! -!%"f21\k.LbF~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -! -! -! -!t$^&S-0eHMcKk2s>WJ,~> -! -!t$^&S-0eHMcKk2s>WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!9\s7OqBs8CLJs0^AWs,,A,s7=e@s0'uQK*&ads7t4FKE&Xbs81=MV#TT>]` -!puf!;5(G!<(XO!4CM\!/fM1!;"qE!3b,VJHE^gs7tCKJcEUes81LRU&X9;\c@6~> -!9\!;4nB!<(IJ!4C>W!/f>,!;"b@!3arQK*&ads7t4FKE&Xbs81=MV#TT>]` -!]` -!o9LV>o9LV#]6IV#]6KV4-* -!W -!/]5+!:nY?!3arQK*&ads7k.EK*&ads81=MV#TT>]` -!j%s8W&Jrr;iFs8N,Ms8CLJ -rrgmPec42!s1Hk^s8CLJs8CLJs8LONs4./LqUPWG!S.5Kec5XPec42"ec,Tlec1:%s7M!G^&S-0 -eHMcKk2s>WJ,~> -!f0VV:sY"g=iCWg83N"rn7RQg=iCWg82+/rr<>Y!8?-, -!87DQptG]Is4[GPrS%8Or7V,Nr7V,N[bCZ[s4RJRgAV'Rg&M-Pg&h?/!!)uOrW)fKrr<)R!<(XO -!!M!Ug&Tk+!5."c!<(XO!<(XO!<1[S!87DQqV(rL!SRPPgA_-Ug&Th,gAV)qgAca(s7LpE_Z0Z5 -g'+2Mk2s5TJ,~> -!T!7fU" -!7_&Lpso?Ds4.)KrRLoJr7(cIr7(cI[akWJ,~> -! -!P\_7#`rn7h^g=cP\g&Tj\!8?-,g&Us&$38c[g&Tj\!8?-,rn7>PaP-ZF!<;YAs8VuM -"ektYk.1PC~> -! -!j%ec5X!s8VoF$NJZVec41M -s4,["rm_#K\^^][rm_5Qe^a]Mec5Qts8VlE$NJZVec41Ms4,["rm_#KaOU -!f0`V:qcBg=iCWg83N"g83N"g=iCWV5:KO$38c[g&Tj\ -!8?-,ptG`Jrn7MUg=cP\gAV*Mg&M-Ng&M,\g&M-Ng&M-OgAV*Og&h?/g&V-+rrDlK$38c[g&Tj\ -!8?-,rn7>P\_7#`rn7PVg=cP\g&V')rrDiJ$38c[g&Tj\!8?-,rn7>PaP-ZFo"tG,qq;4Is5rIT -!.Y~> -! -!j%ec2r*$NJZVec41M -s4,["p=0TOe^a]Mec41Ms4,["rRCoJr7(fI[FGK]e^a]Mec5X!"96p%s8LONs4,["r7(fIqUGrQ -ec42"e^a]Mec5X!!<9U[!<<&K%fb)0s4,["e^a]Mec42"q:,iPec42"e^a]Mec5X!!<:-js+Bh@ -qpbkGs5rIW!.Y~> -! -qq;4Is5rIT!.Y~> -! -!$rr3)Ns8UXKs7t1Ms4./"s8UX" -rr<#KrVsR]r;ZfIs8W&Js8W,Ls8N/Ns8VrG#QN?Sec5["ec,UKec#Njec19nrrRiQs81=MV#TT> -]` -!N[bC`]s4[DOs4[JQ!nmY.rW!&S!!(aP!;Y=R!87G,!!(a, -rW)uPr;aObquHcNrrE#OrrE)Qrr<,S!!)lL#6 -! -]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!d$s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -!PrRq>Rg=cQ+ -g&M-&g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -! -!PrS%5NrRq5O -eCjm&MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -! -! -! -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%s8W&Js8W,L"om-Qec5[Gec#OIec5[Jec,T_eH#W,eH#WHec19m -^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!,s/+?H -KCZ_Us81=MV#TT>]` -! -!]` -!,s/+?H -KCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -!Prn7GSg=cP@g&M,1g&M,M -gAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!aMU__,VUb^! -o"G)'qpbkGs5rIW!.Y~> -!.H!<:dN!<:dQ!!1dR^Y/YfMV8%1VV;'$ -o"tG,qq;4Is5rIT!.Y~> -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!W -J,~> -! -!W -J,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#J"96p%s7b%D -s8LOYs4,["e^a]Mec41Ms4./4eH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -! -!WJ,~> -!j%ec5Kr"TR$Pec5X!!<;rH!<<#J!<<#Jrr;]B!<<&K -#636(s4,["r71iIk1'J3MU__,VUb^!o"G)'qpbkGs5rIW!.Y~> -! -! -! -! -! -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!j%s8W)KrVulIs8W&Jrr9^_!<7r,!<8qH -s+BmUs8VuH"f21\k.LbF~> -! -! -!j%ec5X!!<;rH!<<&K"96p%s8LOKs8CISs4,["e^a]Mec3A6!<7r, -!<8qHs+BmUs8VuH"f21\k.LbF~> -! -!6!!%o, -!!&nHs+BmUs8VuH"f21\k.LbF~> -!j%ec5X!!<<#Jrr;uJ"96p%s8LOKs8CLIs8LONs4,["^=<5`MU__, -VUb^!o"G)'qpbkGs5rIW!.Y~> -! -! -!j%ec5X!!<<&K"96p%s8LONs4,["rm_MYe^a]Ms4,["e^a]Mec3A6 -!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -! -!6 -!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~> -!aMU__, -VUb^!o"G)'qpbkGs5rIW!.Y~> -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!Xe^a]Ms4./"s4./"s4./JeH#XJeH#Wj -eGoT,eGoTHec19m^&S-0eHMcKk2s>WJ,~> -! -! -! -! -!Nrn@APb1Zgq -MV8%1VV;'$o"tG,qq;4Is5rIT!.Y~> -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -! -! -! -!j%ec5Tu!<<&K"96p%s8CIJs8LOKs8:CLs4,["psfBEqpb]H -rm_,Ne^a]NeH#W,eH#WHec19m^&S-0eHMcKk2s>WJ,~> -!]Jqq;#M -rn7GSg=cPXg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!j%ec44N -!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -! -! -!j%ec5Tu!<<&K#liH*s4./"ec5Ns#636(s4,["psfKHe^a^! -eH#XKeH>j%ec44N!<7r,!<8qHs+BmUs8VuH"f21\k.LbF~> -!fMg=cQ+ -g&M-Pg&h?/g&T^X!!%o1!!&nMs+0aXs8VuM"ektYk.1PC~> -! -!d$s,,>,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!W -J,~> -!g&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5T -J,~> -!W -J,~> -!WJ,~> -! -!WJ,~> -!j%ec5Ep!<;uI!<;rH -!<<&K#636(s4,["qUGTGrm_,Ne^a^!eH#XHeH#XKeI2E-ec41Ms4,["ec1NW!<8qHs+BmUs8VuH -"f21\k.LbF~> -! -! -! -! -! -!j%ec5X!!<<&K$iec-s4,["e^a]Ms,,>, -s/+?HKCZ_Us81=MV#TT>]` -! -!]` -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT>]` -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -!g&M,cg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!WJ,~> -!g&M,cg&M,1g&M,MgAc`p_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!,s/+?HKCZ_Us81=MV#TT>]` -! -!j%s8W&Jrr;cDs8W,Ls8N5Ps8UX"rVulIs8W)K!WU^Ls3&pm -!/f;,!2e]` -! -! -!j%ec5X! -!<:-j!!%o,!!&nHs+BmUs8VuH"f21\k.LbF~> -!,s/+?HKCZ_Us81=MV#TT>]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!WJ,~> -! -!WJ,~> -!]` -!sW8Jc*Cbs81LRU&X9;\c@6~> -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!WJ,~> -!o/`_Z0Z5g'+2Mk2s5TJ,~> -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -!]` -! -!]` -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -! -! -! -!!)uB!1`r:s+C-\rVm&OK7gl;s+/^Oe]HAAK8mSEs8UXJs8'G/s5qi8SB\a\S,e'~> -!!)u?!1E` -!!)uB!1`r:s+C-\rVm&OK7gl;s+/^Oe]HAAK8mSEs8UXJs8'G/s5qi8SB\a\S,e'~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!rP']`J.coY(;)k1'X*c+Uf\!.Y~> -!0P!.Y~> -!rP']`J.coY(;)k1'X*c+Uf\!.Y~> -! -! -! -! -! -! -! -! -! -! -!Tn/ngTrk!g](26hb5SsQR/ha~> -! -rr<&DrOqgI!53s`JcC<$XoIq9rk/B'!<7Q~> -rr<&ArOVUC!4ma]JcC<$XoIq6rji0!!<7Q~> -rr<&DrOqgI!53s`JcC<$XoIq9rk/B'!<7Q~> -rr<&Dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~> -rr<&An%&LeJ`_OGJ`a)s!6XcA!gs&gJ,~> -rr<&Dn%A^kJ`_OGJ`a)s!6suG!h98jJ,~> -"9AH%S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~> -"9AH%R@3TV!1AE#J`_OGXl]W+n[eag!W`9#J,~> -"9AH%S=K,_!1\W&J`_OGXl]W.n\+sm!W`9#J,~> -"9AK%!!)MYJ\?WJJ\A.unXTUZrr7K~> -"9AK%!!)MVJ\$EDJ\%qonX9CWrr7K~> -"9AK%!!)MYJ\?WJJ\A.unXTUZrr7K~> -"TJH%s8RWMJH16$MZE\TJ,~> -"TJH%s8RWMJH16$MZE\TJ,~> -"TJH%s8RWMJH16$MZE\TJ,~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/sim_trans_move_actor.gif b/lib/et/doc/src/sim_trans_move_actor.gif deleted file mode 100644 index f7185cada2..0000000000 Binary files a/lib/et/doc/src/sim_trans_move_actor.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans_move_actor.png b/lib/et/doc/src/sim_trans_move_actor.png new file mode 100644 index 0000000000..c642720a8b Binary files /dev/null and b/lib/et/doc/src/sim_trans_move_actor.png differ diff --git a/lib/et/doc/src/sim_trans_move_actor.ps b/lib/et/doc/src/sim_trans_move_actor.ps deleted file mode 100644 index b459735a82..0000000000 --- a/lib/et/doc/src/sim_trans_move_actor.ps +++ /dev/null @@ -1,6403 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: (ImageMagick) -%%Title: (sim_trans_move_actor.ps) -%%CreationDate: (Mon Oct 14 16:44:32 2002) -%%BoundingBox: 0 0 512 426 -%%DocumentData: Clean7Bit -%%LanguageLevel: 1 -%%Orientation: Portrait -%%PageOrder: Ascend -%%Pages: 1 -%%EndComments - -%%BeginDefaults -%%EndDefaults - -%%BeginProlog -% -% Display a color image. The image is displayed in color on -% Postscript viewers or printers that support color, otherwise -% it is displayed as grayscale. -% -/DirectClassPacket -{ - % - % Get a DirectClass packet. - % - % Parameters: - % red. - % green. - % blue. - % length: number of pixels minus one of this color (optional). - % - currentfile color_packet readhexstring pop pop - compression 0 eq - { - /number_pixels 3 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add 3 mul def - } ifelse - 0 3 number_pixels 1 sub - { - pixels exch color_packet putinterval - } for - pixels 0 number_pixels getinterval -} bind def - -/DirectClassImage -{ - % - % Display a DirectClass image. - % - systemdict /colorimage known - { - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { DirectClassPacket } false 3 colorimage - } - { - % - % No colorimage operator; convert to grayscale. - % - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { GrayDirectClassPacket } image - } ifelse -} bind def - -/GrayDirectClassPacket -{ - % - % Get a DirectClass packet; convert to grayscale. - % - % Parameters: - % red - % green - % blue - % length: number of pixels minus one of this color (optional). - % - currentfile color_packet readhexstring pop pop - color_packet 0 get 0.299 mul - color_packet 1 get 0.587 mul add - color_packet 2 get 0.114 mul add - cvi - /gray_packet exch def - compression 0 eq - { - /number_pixels 1 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add def - } ifelse - 0 1 number_pixels 1 sub - { - pixels exch gray_packet put - } for - pixels 0 number_pixels getinterval -} bind def - -/GrayPseudoClassPacket -{ - % - % Get a PseudoClass packet; convert to grayscale. - % - % Parameters: - % index: index into the colormap. - % length: number of pixels minus one of this color (optional). - % - currentfile byte readhexstring pop 0 get - /offset exch 3 mul def - /color_packet colormap offset 3 getinterval def - color_packet 0 get 0.299 mul - color_packet 1 get 0.587 mul add - color_packet 2 get 0.114 mul add - cvi - /gray_packet exch def - compression 0 eq - { - /number_pixels 1 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add def - } ifelse - 0 1 number_pixels 1 sub - { - pixels exch gray_packet put - } for - pixels 0 number_pixels getinterval -} bind def - -/PseudoClassPacket -{ - % - % Get a PseudoClass packet. - % - % Parameters: - % index: index into the colormap. - % length: number of pixels minus one of this color (optional). - % - currentfile byte readhexstring pop 0 get - /offset exch 3 mul def - /color_packet colormap offset 3 getinterval def - compression 0 eq - { - /number_pixels 3 def - } - { - currentfile byte readhexstring pop 0 get - /number_pixels exch 1 add 3 mul def - } ifelse - 0 3 number_pixels 1 sub - { - pixels exch color_packet putinterval - } for - pixels 0 number_pixels getinterval -} bind def - -/PseudoClassImage -{ - % - % Display a PseudoClass image. - % - % Parameters: - % class: 0-PseudoClass or 1-Grayscale. - % - currentfile buffer readline pop - token pop /class exch def pop - class 0 gt - { - currentfile buffer readline pop - token pop /depth exch def pop - /grays columns 8 add depth sub depth mul 8 idiv string def - columns rows depth - [ - columns 0 0 - rows neg 0 rows - ] - { currentfile grays readhexstring pop } image - } - { - % - % Parameters: - % colors: number of colors in the colormap. - % colormap: red, green, blue color packets. - % - currentfile buffer readline pop - token pop /colors exch def pop - /colors colors 3 mul def - /colormap colors string def - currentfile colormap readhexstring pop pop - systemdict /colorimage known - { - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { PseudoClassPacket } false 3 colorimage - } - { - % - % No colorimage operator; convert to grayscale. - % - columns rows 8 - [ - columns 0 0 - rows neg 0 rows - ] - { GrayPseudoClassPacket } image - } ifelse - } ifelse -} bind def - -/DisplayImage -{ - % - % Display a DirectClass or PseudoClass image. - % - % Parameters: - % x & y translation. - % x & y scale. - % label pointsize. - % image label. - % image columns & rows. - % class: 0-DirectClass or 1-PseudoClass. - % compression: 0-none or 1-RunlengthEncoded. - % hex color packets. - % - gsave - /buffer 512 string def - /byte 1 string def - /color_packet 3 string def - /pixels 768 string def - - currentfile buffer readline pop - token pop /x exch def - token pop /y exch def pop - x y translate - currentfile buffer readline pop - token pop /x exch def - token pop /y exch def pop - currentfile buffer readline pop - token pop /pointsize exch def pop - /Times-Roman findfont pointsize scalefont setfont - x y scale - currentfile buffer readline pop - token pop /columns exch def - token pop /rows exch def pop - currentfile buffer readline pop - token pop /class exch def pop - currentfile buffer readline pop - token pop /compression exch def pop - class 0 gt { PseudoClassImage } { DirectClassImage } ifelse - grestore - showpage -} bind def -%%EndProlog -%%Page: 1 1 -%%PageBoundingBox: 0 0 512 426 -DisplayImage -0 0 -512 426 -12.000000 -512 426 -1 -0 -0 -64 -31446a -394473 -314473 -000000 -ffffff -bdbebd -dedade -d5d6d5 -949194 -ded6de -9c999c -d5d2d5 -c5c2c5 -bdb6bd -838183 -7b817b -8b918b -7b7d7b -838583 -b4b2b4 -a4a1a4 -bdbabd -aca5ac -acaaac -cdcecd -c5cac5 -949594 -c5c6c5 -bdc2bd -b4b6b4 -949994 -838983 -a4a5a4 -acaeac -9ca19c -cdcacd -9c9d9c -8b8d8b -d5ced5 -9c959c -cdc6cd -e6e6e6 -d5dad5 -8b898b -b4aeb4 -c5bec5 -a4aaa4 -eeeeee -ffa500 -ff0000 -0000ff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -ffffff -000102000203030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303010201020101010103030404040404040404040404040404040405040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404050404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040403030101010202030404060606060606060606060606060606 -060507070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070705060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060606060606060606060606060606060606062f2f030001010304060606060606060606 -060606060606060606050707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070506060606060606060606060606060606060606060606060606060606060606 -06060606060606060606060606060606060606060606060606060606060c030002030406 -060606060606060606060606060606060605070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -0707070707070707070707070707070707070707190b0707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707050606060606060606060606060606060606060606060606 -060606060606060606060606060606060606060606060606060606060606060606060606 -060c03010304060606060606060606060606060606060606060507070707070707070707 -070707070707070707070707070707070707070707080807070707070707070707070707 -07070707070707070707070707070707070707070707070c1407050f111e080807070e0f -070707070707070707070707070707070707070707070707070707070707070707070707 -07070707070e0f07070e0f07070707070707070707070707070707070707070707070707 -070707070707071405070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070707070707070707070707070707070707 -070707070707070707070707070707070707070705060606060606060606060606060606 -06060606060606060606060a0a0a0a0a0a0a0a0a0a0606060606060606060606060a0a06 -0606060a0a06060606062103030409090909090a0a0909090909090a0a09090909050b0b -0b0b0b0b0b0b0b0b0b0b0b0c0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b08080b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0f1d0b2511 -1b2608080b0b0e0f0b0b0c0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c -0d0b0b0b0b0b0b0b0b0b0b0b0b0b0b1d112d0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0509090909090909 -090909090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a09090909090909 -090909090a0a0a0a09090a0a0a0a0909090921030304090909090a0a0a0a090909090a0a -0a0a090909050b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b2b1a0b0b0e0f0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0e0f0b0b0e0f0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0e0f0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b1a2b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0509090909090909090909090909090909090909090909090909090a0a0a0a0a0a0a0a0a -0a09090909090909090909090a0a0a0a0a0a0a0a0a0a0909090921030304090909090a0a -0a0a0a09090a0a0a0a0a090909050b0b0b0b0b0b0c101112130b141111110c0b0b0b0b0b -0b0a11150b0b16120b0e0f0b0b0c101112130b17110c0b0a110c0b0a140b0c101112130b -0b252516250b0b0b0b1511150b0a111111230e0f0b0b0e0f0b141111110c0c101112130b -0b252516250b0e0f0b0b0b0b0b0b212b11112b230b212b112b210b0b0b0e0f0b0b0e0f0b -0b0c101112130b0b212b11112b23141111110c212b112b210b0b0b252516250b0d11150b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0509090909090909090909090909090909090909090909090909090a -0a0a0a0a0a0a0a0a0a0909090909090909090909090a0a0a0a0a0a0a0a09090909092103 -03040b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b051818181818190e12151a111b1b0f -111c181818181818181d111e18181f20180e0f18190e12151a111b15111718121117180e -1d190e12151a111b180e112b201818181822111b181b0f111c180e0f18180e0f181b0f11 -1c1b0e12151a111b180e112b20182b1f181818181820112b131d2e1b17111a051a111718 -180e0f18180e0f18190e12151a111b20112b131d2e1b1b0f111c2e111a051a111718180e -112b20181b11221818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -18181818181818181818181818181818050b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a -0b0b0b0b0b0b210303040b0b0b0b0b0b0a0a0a0a0a0a0a0a0b0b0b0b0b05181818181821 -112223211121180e0f1818181818181818180e0f2305110c180e0f182111222321112118 -111a1b11121e1c112321112223211121180e112318181818181a111818180e0f18180e0f -18180e0f18180e0f1821112223211121180e112318181818181818181812110c18181818 -1f111b181b111f18180e0f18180e0f182111222321112112110c18181818180e0f181f11 -1b181b111f18180e1123181818111a181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818050b0b0b0b0b0b0b0b0b0b0b -0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b -0b0b0a0a0a0a0a0a0b0b0b0b0b0b210303040b0b0b0b0b0b0b0a0a0a0a0a0a0b0b0b0b0b -0b05181818181820111111111120180e0f181818181818181818241121242518180e0f18 -2011111111112018100e21081e1217251820111111111120180e0f1818181818181a1118 -18180e0f18180e0f18180e0f18180e0f1820111111111120180e0f181818181818181818 -18111118181818180f11181818111118180e0f18180e0f18201111111111201111181818 -1818180e0f180f11181818111118180e0f18181818111a18181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -1818181818181818181818181818181818181818181818181818181818181818050b0b0b -0b0b150a0a0a0a0a0a0a0a150b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b0b0b0b0b0a0b0b0b -0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a0b0b0b0b0b210303040b0b0b0b0b0b0b0b0a0a -0a0a0b0b0b0b0b0b0b05181818181821112218181818180e0f1818181818181818181511 -250e1718180e0f18211122181818181814112520171125141821112218181818180e0f18 -181818181814111b18180e0f18180e0f18180e0f18180e0f1821112218181818180e0f18 -181818181818181818121105181818181f111b181b111f18180e0f18180e0f1821112218 -18181812110518181818180e0f181f111b181b111f18180e0f1818181b11221818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -181818181818181818181818181818181818181818181818181818181818181818181818 -18181818050b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0a0b0b0b0b -0b0b0b0b0a0b0b0b0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a0a0a0b0b0b0b210303042626 -2626262626262627272626262626262626052323232323281211201d2113231f111d2823 -232323232323231211111b23230e0f23281211201d2113231d11110d1511111d23281211 -201d2113230e0f23232323232315112c23230e0f23230e0f23230e0f23231f111d0c1211 -201d2113230e0f2323232b1f2323232323171112210d170c17111a151a111623230e0f23 -230e0f23281211201d2113171112210d170c231f111d20111a151a111623230e0f232323 -2c110d232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323052626262626272727272727272727272626262626262626 -262626272626262626262626272626262626262626262626272727272626272727272626 -26262103030426262626262626262626262626262626262626052323232323230c1a0f11 -122123130e0f1523232323232323231411082323230e0f23230c1a0f1112212328111123 -2311112823230c1a0f111221230e0f23232323232323252523230e0f23230e0f23230e0f -2323130e0f150c1a0f111221230e0f2323230e0f232323232323172b11112b2d23161211 -12172323230e0f23230e0f23230c1a0f11122123172b11112b2d23130e0f151612111217 -2323230e0f23232325252323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -23232323232323232323232323232323232323230526262626260d27272727272727270d -262626262626262626262627272727272727272727262626262626262626262626272726 -262626272726262626262103030426262626262626262626262626262626262626052323 -232323232323232323232323232311111111111111152323232323232323232323232323 -2323232323232323232323232323232323232323232323232323232323230c0e16232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323170e0c232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323230526262626262626 -262626262626262626262626262626262626262626262626262626262626262626262626 -262626262626262626262626262626262626210303042323232323232323232323232323 -2323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b05141b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b14051b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -052323232323232323232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232321030304232323232323 -23232323232323232323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b05232323232323232323232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232103 -030423232323232323232323232323232323232323051b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b -1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b0523232323232323232323232323232323232323 -232323232323232323232323232323232323232323232323232323232323232323232323 -2323232323232103030e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e030304292929140404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404140429291503030429292914040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040e14042929150303042929 -291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404 -2929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503 -03042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a0303030303 -0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03030303 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a2a2a2a2a03032a03032a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -03030303030303032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a -2a2a2a03032a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303 -2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a2a2a2a2a2a2a03032a03032a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929 -291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a030303032a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a03032a2a03032a03032a2a030303032a2a03032a2a03032a2a03032a2a -030303032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a03030303 -2a2a03032a03032a2a030303032a2a2a030303032a2a030303032a2a030303032a2a0303 -2a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a030303032a2a0303 -03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a030303032a -2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404 -2929150303042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a03 -032a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a03032a03032a2a03032a03032a2a -03032a2a03032a03032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a -2a2a2a03032a2a03032a03032a03032a03032a2a03032a03032a2a03032a2a03032a2a03 -032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a -2a03032a2a03032a2a03032a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03 -032a03032a2a03032a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a03030303032a03032a -03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a03032a03032a -2a03032a2a03032a03032a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a03032a2a2a2a2a03032a2a03032a03032a03032a03032a2a03032a03032a2a2a -2a2a2a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303 -032a03032a03032a2a03032a2a03032a2a03032a0303032a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a030303030303032a03032a2a03032a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a03 -032a2a2a2a03032a03032a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a032a2a03 -2a2a03032a0303030303032a2a03032a03032a03032a2a0303030303032a03032a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a03032a2a03032a03032a03032a03030303 -03032a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a03032a2a2a2a03032a03032a2a03032a2a0303030303032a03032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a0303030303032a03032a03032a2a03032a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404 -2a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a030303032a2a03032a03032a2a2a2a2a2a03032a03032a03032a2a03032a2a2a -2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a03032a2a03032a0303 -2a03032a03032a2a2a2a2a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a03032a2a03032a2a2a2a2a -03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a2a2a2a03032a -03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503 -03042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a03032a2a03032a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a2a03032a2a0303 -2a2a2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a030303 -032a2a03032a03032a03032a03032a2a03032a03032a2a03032a2a03032a0303032a2a03 -032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a03032a -0303032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a0303 -2a2a03032a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e14042929150303042929291404042a2a2a2a2a2a2a03032a2a2a2a03032a03032a2a -030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a030303032a2a -2a2a03032a2a03032a2a2a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a030303032a2a030303032a2a03032a03032a2a030303032a2a2a030303032a2a2a2a -03032a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a0303 -2a03032a2a2a03032a2a030303032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303 -2a2a2a03032a2a030303032a2a03032a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929 -291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404 -2929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e14042929150303042929291404042a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1404292915030304292929140404 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e140429291503 -03042929291404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e14042929150303042929291404040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e140429291503030429292914040e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303032a2a2a2a2a2a2a2a2a2a2a0303 -2a2a2a2a2a2a2a2a2a03032a03032a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a03032a2a2a2a -2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a03032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040404 -040404040404042a2a2a2a2a2a2a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303 -2a2a2a03032a2a030303032a2a030303032a2a030303032a2a03032a03032a2a2a2a2a2a -03032a2a2a2a2a030303032a2a03032a2a2a03032a2a030303032a2a03032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a040404040404040404040e2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a03032a2a03032a2a03032a03032a -03032a2a2a2a2a2a03032a2a2a2a03032a2a03032a03032a2a2a03032a03032a2a03032a -03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a -2a03032a03032a030303032a2a2a030303032a2a03030303032a2a030303032a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a2a03032a2a2a2a -2a2a03032a03032a03032a2a2a2a2a2a03032a2a2a2a03032a2a03032a2a03032a03032a -2a03032a2a03032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a -2a2a2a03032a2a2a2a030303030303032a2a03032a03032a2a03032a2a2a2a03032a0303 -2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a030303030303 -2a2a03032a2a2a03030303032a03032a03032a2a2a2a2a2a03032a2a2a2a030303030303 -2a2a03032a03032a2a0303030303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a -2a0e0e2a2a2a2a2a2a2a2a03030303032a0303032a2a03032a2a03032a03032a2a03032a -2a2a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03 -032a03032a2a2a2a2a2a03032a2a03032a2a03032a03032a03032a2a2a2a2a2a03032a2a -2a2a03032a2a2a2a2a2a2a0303032a2a2a03032a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a2a03032a2a2a030303030303 -2a0303030303032a2a2a032a2a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a03032a2a03032a2a03032a2a03032a2a03032a0303032a2a03032a03032a03032a2a -2a2a2a2a03032a2a2a2a03032a2a03032a2a2a0303032a2a2a03032a2a03032a03032a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a2a03032a -2a2a03032a2a2a2a2a03032a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a03030303032a2a2a2a030303032a2a2a2a03032a2a0303032a03 -0303032a03032a2a2a2a2a2a0303030303032a030303032a2a2a2a2a032a2a2a2a2a0303 -03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03 -032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a03032a2a2a2a03032a2a0303 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a -2a2a2a2a2a2a2a03032a2a2a2a03032a2a2a2a030303032a2a2a030303032a2a03030303 -032a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040e0e -0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a03030303 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a03032a2a -03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03 -032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a03 -032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a04040404040404040404042a2a2a2a2a2a2a2a03032a2a2a -03032a03032a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303032a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a -03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a040404040404040404040e2a2a2a2a2a -2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a03032a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a -2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a03032a2a030303032a2a -2a2a2a2a2a03032a2a2a2a03032a03032a030303032a2a032a0303032a0303032a2a2a2a -2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a030303032a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a030303 -2a03032a2a03032a2a2a2a2a2a03032a2a2a2a030303030303032a2a03032a03032a2a03 -032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a030303030303032a03 -032a03032a2a03032a03032a2a03032a2a2a2a2a2a03030303032a0303032a2a03032a2a -03032a03032a2a03032a2a03032a0303030303032a2a2a2a03032a2a2a03032a2a03032a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03 -032a2a2a03032a03032a03032a2a03032a0303030303032a2a2a2a2a2a03032a2a2a2a03 -032a2a2a03032a2a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a -2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a -2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a03032a03032a2a2a2a2a2a2a2a2a -2a03032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a03032a030303030303 -2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a -2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a0303032a03032a -2a03032a2a2a2a2a2a03032a2a2a2a03032a2a2a03032a2a03032a03032a2a03032a2a03 -032a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03 -032a03032a2a030303032a2a2a2a2a2a2a03032a2a2a2a03032a2a2a2a030303032a2a03 -032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a030303032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a04040e0e0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040404 -040404040404040404040404040404040404040404040404040404042a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c04040404040404040404040404040404040404040404040404040404040e0404 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a -2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e04 -2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a -2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a -0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a -2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a -2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a -2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a0404040404040404 -0404042a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a2a2a2a03032a2a2a2a2a2a2a2a -2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a2a2a2a2a0e0e0404 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -040404040404040404040e2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a0303 -2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a03032a2a2a2a2a2a2a2a03032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e042a2a2a2a2a2a2a2a -2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03 -032a2a03032a03032a2a030303032a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a -03032a2a03032a03032a03032a2a2a030303032a2a03032a2a03032a2a03032a03032a03 -032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a0e04 -2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03 -032a2a2a03032a03032a03032a0303032a03032a2a03032a2a2a2a2a2a03032a2a2a0303 -2a0303032a03032a03032a03032a2a0303032a03032a03032a2a03032a03032a2a03032a -2a03032a0303032a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040e0e0e0e0e0e -0e0e0e0e0e0e0e040e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a -2a2a2a2a2a2a2a030303030303032a03032a03032a2a03032a03032a2a03032a2a2a2a2a -2a03032a2a2a03032a03032a2a03032a030303032a2a2a03032a2a03032a03032a2a0303 -2a2a03032a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a -2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a03032a2a03032a030303 -0303032a2a2a2a2a2a03032a2a2a03032a03032a2a03032a030303032a2a2a03032a2a03 -032a03032a2a03032a2a03032a03032a03032a2a03032a2a03032a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a03032a03032a0303 -2a2a03032a03032a2a2a2a2a2a2a2a2a2a03032a2a2a03032a03032a2a03032a03032a03 -032a2a03032a2a03032a03032a2a03032a2a03032a03032a03032a2a03032a2a03032a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -0404040404040404040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a2a2a2a03032a2a2a -03032a03032a03032a0303032a03032a2a03032a2a2a2a2a2a2a03032a03032a2a03032a -2a03032a03032a2a03032a03032a2a03032a03032a2a03032a2a2a03032a2a03032a2a2a -03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04042a2a2a2a2a2a2a0e0e2a2a2a2a2a -2a2a2a03032a2a2a03032a03032a2a03032a03032a2a030303032a2a2a2a2a2a2a2a0303 -0303032a2a03032a2a03032a03032a2a2a030303032a2a03032a2a030303032a2a2a2a03 -032a2a03032a2a2a03032a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a04040e0e0e0e0e0e -0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c0e1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c040e0e1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c04040e0e1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c04042a0e0e1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04042a2a0e0e1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04 -042a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c04042a2a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a0e0e1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a -2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31 -312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -04042a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a30302a2a303030302a30303030302a30302a30302a3030302a -2a30302a2a30302a30303030302a3030302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a312a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a302a2a302a2a302a2a302a302a -2a2a302a2a302a2a302a2a302a302a2a2a302a2a302a2a302a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a -2a31312a31312a2a2a2a2a2a2a2a2a3131312a2a3131312a2a2a2a31312a2a2a2a2a312a -2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a31312a312a2a312a31312a2a2a2a31312a2a2a2a3131312a2a2a31312a -2a2a31312a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a31312a2a2a2a31312a2a2a312a3131 -2a2a2a31312a2a2a312a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a2a312a31312a2a2a2a31312a -2a2a2a3131312a2a2a31312a2a2a31312a2a2a2a2a2a2a2a2a2a313131312a31312a312a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040e0e0e0e0e0e0e0e0e0e0e0e1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a302a2a3030 -2a302a2a30302a2a2a2a30302a302a2a302a2a302a302a302a302a2a30302a302a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a2a2a312a2a2a2a2a312a2a312a2a312a -2a312a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a312a2a312a2a312a -2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a312a2a2a312a2a312a2a312a -2a312a2a312a312a2a2a312a2a312a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a -2a312a2a312a2a312a2a312a2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a31 -2a2a2a312a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e040e0e0e0e0e0e0e0e0e0e0e0e -0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -302a2a302a2a302a30302a2a302a302a2a2a302a30302a2a302a2a302a302a302a302a2a -302a30302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a2a2a2a31312a2a2a -312a2a312a2a3131312a2a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a -3131312a2a2a2a31312a2a2a2a2a312a2a2a3131312a2a2a2a2a2a2a2a2a2a2a312a2a2a -312a2a312a2a312a2a2a2a2a31312a2a2a2a3131312a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31 -2a312a312a2a312a2a312a2a3131312a2a2a2a31312a2a2a2a2a312a2a2a3131312a2a2a -2a2a2a2a2a2a2a312a2a2a312a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a302a2a30 -2a2a302a302a2a2a302a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a2a2a2a2a -2a2a2a2a2a312a2a312a2a312a2a312a2a312a2a2a2a312a2a2a2a2a312a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31 -2a2a312a2a312a2a312a2a312a2a2a2a2a312a2a2a2a312a2a312a2a312a2a2a2a2a2a2a -2a2a2a2a312a2a2a312a2a312a2a312a2a312a2a312a312a2a2a312a2a312a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a312a312a312a2a312a2a312a2a312a2a312a2a2a2a2a312a2a2a2a312a -2a312a2a312a2a2a2a2a2a2a2a2a2a312a2a31312a312a312a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e04040404040404040404040404040404042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a30302a2a30302a2a302a3030302a2a3030302a -2a302a2a2a30302a2a2a302a302a2a30302a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31312a2a31 -312a2a2a2a2a2a2a2a2a3131312a2a3131312a31312a2a31312a2a2a31313131312a3131 -3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a312a312a31313131312a31312a2a31312a2a2a3131312a2a2a31313131312a3131 -2a312a2a2a2a2a2a2a2a31313131312a2a31312a2a2a2a31312a2a31312a31312a2a2a31 -312a2a2a313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a312a31313131312a31312a2a31312a2a2a3131 -312a2a2a31313131312a31312a312a2a2a2a2a2a2a2a2a2a31312a312a312a31312a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e04040404040404040404040404040e04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131 -312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a -2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04 -042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a -0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a -2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a -2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04 -042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a -0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a -2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04042a2a2a2a2a2a2a2a2a2a2a0e0e0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040e0e0e0e0e0e0e -0e0e0e0e0e0e04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04 -0e0e0e0e0e0e0e0e0e0e0e0e0e0e04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a2a2a31312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a312a31312a2a2a2a31312a2a312a312a31312a2a2a2a2a2a2a313131312a2a -2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a312a312a312a312a2a2a2a2a2a -2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a3131312a2a312a31 -2a312a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a -312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a312a2a312a2a2a312a2a2a312a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a3131312a31312a2a31312a2a2a312a312a2a2a2a2a2a2a2a2a2a2a31312a2a31313131 -312a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31 -31313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a0303030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -0303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a03030303032a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a313131312a2a -312a31313131312a31312a2a2a2a2a2a2a312a312a31312a312a3131312a2a31312a2a2a -313131312a2a2a31312a2a2a2a2a2a2a2a2a2a2a312a2a2a2a31312a2a2a2a31312a2a2a -312a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a312a2a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a312a312a312a2a2a312a2a -2a2a2a2a312a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a2a2a2a312a2a2a312a2a31 -2a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a312a31 -2a312a2a2a312a2a2a2a2a2a312a2a2a2a312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a -312a2a2a312a2a312a2a312a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a2a2a312a2a312a2a -2a2a2a2a2a2a312a312a2a2a2a312a2a2a2a2a2a312a2a2a2a312a2a312a312a2a312a2a -2a2a2a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a31313131 -2a2a2a31312a2a2a2a2a2a2a2a2a312a312a2a2a313131312a2a31313131312a2a2a3131 -2a2a2a31312a2a2a2a2a2a2a2a2a31313131312a2a31312a2a2a2a31312a2a31312a3131 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a3131313131312a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a03030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a -2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31 -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a312a3131312a31312a2a2a31 -2a31312a2a2a313131312a2a2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a2a312a2a -2a2a2a2a312a2a2a312a2a312a2a2a312a2a2a2a312a2a312a2a312a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a -2a312a2a2a312a2a2a2a3131312a2a2a312a2a312a2a2a312a2a2a2a3131312a2a2a312a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a312a2a312a2a2a312a2a2a312a2a312a2a2a312a2a312a2a2a312a2a312a -312a2a312a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a3131312a2a313131312a2a31312a312a3131312a31 -312a2a2a31312a2a2a31312a2a2a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a3131312a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a0303030303032a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -0303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a03030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a030303032a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a03032a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a32322a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a322a -2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a3232322a2a2a32322a2a2a2a2a2a2a2a2a2a32322a2a2a2a32322a2a32 -322a322a2a32322a322a2a2a2a32322a2a2a323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a2a2a2a2a2a322a2a32 -2a2a322a2a322a322a322a322a322a322a322a2a2a2a322a2a2a2a322a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a2a -2a2a2a2a322a2a2a2a2a322a2a322a322a322a322a322a322a322a2a2a2a322a2a2a2a32 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a -322a2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a322a322a322a322a322a322a2a -2a2a322a2a2a2a322a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a32322a322a2a32322a2a2a2a2a2a2a2a2a2a32322a2a2a2a32322a2a322a322a32 -32322a322a32322a32323232322a2a2a32322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3232323232322a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a -2a2a2a2a31312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a31 -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a3131312a -2a31312a2a2a2a2a312a2a2a2a31312a2a2a31312a2a2a2a2a3131312a2a2a31312a2a2a -2a2a2a2a2a2a313131312a2a2a31312a2a2a2a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a312a2a2a2a312a2a312a2a2a2a312a2a2a312a2a312a2a2a2a312a2a2a312a2a2a -2a2a312a2a312a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a3131312a2a2a2a2a312a2a2a3131312a2a2a3131 -312a2a2a2a31312a2a2a3131312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a312a2a312a2a2a2a312a2a2a -312a2a312a312a2a312a2a2a2a2a2a312a2a312a2a312a2a2a2a2a2a2a2a2a312a2a312a -2a2a312a2a2a312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a313131312a2a2a31312a -2a2a31313131312a2a31312a2a2a31312a312a2a3131312a2a2a2a31312a2a2a2a2a2a2a -2a2a2a2a31312a2a31313131312a2a31312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a3131313131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a03030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a31312a2a2a2a2a2a2a2a2a31312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a31 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a3131312a2a2a31312a2a2a2a2a312a2a2a -2a31312a2a2a313131312a2a2a31312a2a2a2a2a2a2a2a2a313131312a2a312a3131312a -31312a2a2a312a31312a2a2a2a3131312a2a31312a2a2a2a2a31312a2a2a313131312a2a -2a31312a2a2a2a31312a2a312a31312a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a2a312a2a312a2a31 -2a2a2a2a312a2a2a312a2a312a2a2a312a2a2a2a312a2a312a2a2a2a2a2a2a2a2a312a2a -2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a2a2a2a2a2a312a2a2a312a2a31 -2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a312a -2a312a2a3131312a2a2a2a2a312a2a2a3131312a2a2a2a312a2a2a2a3131312a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a312a2a2a2a3131312a2a2a312a2a312a2a2a31312a2a2a3131 -312a2a2a312a2a2a2a2a2a312a2a2a2a2a2a312a2a2a312a2a312a2a312a2a312a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a312a2a312a2a312a2a312a2a2a2a312a2a2a312a2a312a2a2a312a2a312a -312a2a312a2a2a2a2a2a2a2a2a312a2a312a2a312a2a2a312a2a312a2a2a312a2a312a2a -2a2a2a312a312a2a312a2a2a312a2a312a2a2a312a2a312a2a2a312a2a2a312a2a312a2a -312a2a312a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a31312a312a2a31312a2a2a31313131312a2a31312a -2a2a2a2a31312a2a2a31312a2a2a2a2a2a2a2a2a2a2a31312a2a313131312a2a31312a31 -2a3131312a31312a3131312a2a2a31312a312a2a2a31312a2a2a2a2a31312a2a31313131 -312a2a31312a2a3131312a3131312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3131313131312a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a030303032a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -0303030303030303030303030303030303312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303030303032a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0303032a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a03032a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a32322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a32 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a32322a2a322a32322a2a2a2a3232322a2a2a2a2a2a2a2a2a32322a2a32 -322a32322a2a323232322a2a2a32322a2a2a322a3232322a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a322a2a322a2a2a2a2a2a -2a2a322a2a322a2a322a2a322a2a2a322a2a2a2a322a2a322a2a2a322a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a3232322a2a2a322a2a322a2a322a -2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a322a2a2a2a3232322a2a2a2a32 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a322a2a322a2a -322a2a322a2a322a2a322a2a2a2a2a2a2a2a322a2a322a2a322a2a322a2a2a322a2a322a -322a2a322a2a2a322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a32322a2a3232322a32322a2a32322a322a2a2a2a2a2a2a2a32322a2a2a2a32322a -322a2a2a32322a2a2a32322a2a2a323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a32 -32323232322a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e04040404040404040404040404040404042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c040404040404040404040404040e04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a0e0e1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a -2a2a2a0e0e1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c04042a2a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a2a0e0e1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c04042a2a2a2a2a0e0e1c1c1c04042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04042a2a2a2a0e0e1c -1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c04 -042a2a2a0e0e1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a0e0e1c1c1c1c1c04042a2a0e0e1c1c1c1c04042a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c04042a0e0e1c1c1c1c1c04042a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e0e0e1c1c1c1c1c0404 -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040e0e -1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c -1c1c1c1c1c1c0e0e1c1c1c1c1c1c04042a2a2a2a2a2a1404292915030304292929142a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a0e0e1c1c1c1c1c1c1c0e1c1c1c1c1c1c1c04042a2a2a2a2a2a140429291503 -0304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e04040404040404040404040404040404042a2a2a2a -2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0404040404040404040404040404 -040404042a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a302a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a312a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a312a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303042929 -29142a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404 -292915030304292929142a2a2a2a2a2a0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c -1c1c1c1c041c040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404041c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04041c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a1404292915030304292929142a2a2a2a2a2a0e0e1c1c -1c1c1c1c1c1c1c1c1c1c04040e1c04040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -04040404040e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c040404041c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a14042929150303150a0a0a0a2a2a -2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c0404040e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404040404041c1c1c1c1c1c1c1c -1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a150a0a0303 -03232323230a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c040404042a0e0e1c04042a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a0404 -04041c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c040404042a2a2a0e -0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04042a2a2a2a040404041c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c0404 -04042a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a040404041c1c1c04042a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a -0e0e1c1c040404042a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a040404041c04042a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515 -150a2a2a2a2a2a2a0e0e0e0e0e0e2a2a2a2a2a2a2a2a2a0e0e1c04042a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a -2a0e0e0e0e04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a23 -15150a0303231515150a2a2a2a2a2a2a0e0e1c1c0e0e0e0e2a2a2a2a2a2a2a0e0e1c0404 -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c0404 -2a2a2a2a2a2a2a2a0e0e0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c0e0e0e0e2a2a -2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c04042a2a2a2a2a2a0e0e0e0e1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c -1c1c1c1c0e0e0e0e2a2a2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a0e0e0e0e1c1c1c1c1c04042a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a -2a2a2a2a0e0e1c1c1c1c1c1c1c1c0e0e0e0e2a0e0e1c04042a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a0e0e0e0e1c1c1c1c1c1c -1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a03 -03231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c0e0e0e0e0e1c04042a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c04040e0e0e0e -1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c1c1c1c1c1c1c0e0e -0e1c04040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c04040e0e1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a0e0e1c1c1c1c1c1c -1c1c1c1c1c1c1c1c0e1c040e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0e0e1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c -1c1c1c1c1c1c1c1c1c1c040e1c1c1c1c1c1c1c1c1c1c1c1c1c04042a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515150a2a2a2a2a2a2a -0e0e04040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -04040404040404040404040404040404040404040404040404040404040404040404042a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a2315150a0303231515 -150a2a2a2a2a2a2a0e040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404042a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0a23 -15150a0303231515150a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a -2a2a2a2a2a2a0a2315150a030323151515150a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a1414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -141414141414141414141414141414141414141414141414141414141414141414141414 -14141414141414141414141414141414141414141414141414141414141414141414150a -0a0a0a0a0a0a0a0a0a0a0a0a0a0a231515150a0302032315151515232323232323232323 -232323232315040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404232323232323232323232323232323231515150a03040103231515151515 -151515151515151515151515150a29292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -2929292929292929292929292929231515151515151515151515151515151515150a0304 -0101030a0a151515151515151515151515151515150a2929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292929292929292929292929292929 -292929292929292929292929292929292929292929292315151515151515151515151515 -1515150a0a03040402010103030a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515151515151515 -151515151515151515151515151515151515151515151515151515151515150a0a0a0a0a -0a0a0a0a0a0a0a0a0a0a0a03030303040001020001030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303030303030303030303030303030303 -030303030303030303030303030303030303030303040403 -%%PageTrailer -%%Trailer -%%EOF diff --git a/lib/et/doc/src/sim_trans_write_lock.gif b/lib/et/doc/src/sim_trans_write_lock.gif deleted file mode 100644 index d62505fe35..0000000000 Binary files a/lib/et/doc/src/sim_trans_write_lock.gif and /dev/null differ diff --git a/lib/et/doc/src/sim_trans_write_lock.png b/lib/et/doc/src/sim_trans_write_lock.png new file mode 100644 index 0000000000..1ce15a33c5 Binary files /dev/null and b/lib/et/doc/src/sim_trans_write_lock.png differ diff --git a/lib/et/doc/src/sim_trans_write_lock.ps b/lib/et/doc/src/sim_trans_write_lock.ps deleted file mode 100644 index 80e03852dc..0000000000 --- a/lib/et/doc/src/sim_trans_write_lock.ps +++ /dev/null @@ -1,1287 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner -%%Title: /home/hakan/picts/sim_trans_write_lock.ps -%%CreationDate: Mon Oct 14 17:06:30 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 359 199 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228 14.173228 translate -% Translate to begin of first scanline -0.000000 184.755782 translate -344.431594 -184.755782 scale -% Image geometry -412 221 8 -% Transformation matrix -[ 412 0 0 221 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 412 string def -/gstr 412 string def -/bstr 412 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 74154 ASCII Bytes -colorimage -!AQV60nB=U!.b.=!<5%\0f_7E~> -r'Z)9JH16$mf<8RJ,~> -"DW"!C3+q+JH16$mf -r]0uYnc&S -r^?bdnc&SGS\BZdT=P"ZmJd0[mJd0[nc/Uhr^;8~> -rcA)>nc&SuJaS*W]C#Z.mJd0^mJd0^nc/Uhrc -s"OQTs8W)KqVM,3!%EJWb_q%)n:Lcks3:GkqVM/4!i5k@qpkQ"r8n'Vs3:GkqVDD -s$Qngs8W)LrS%8-ro3q>!&U[?JWZ.Y!]9r&rmLesrS%8-ro3t?!hoY>rmLesrS%8-ro3t?!hoY> -rmLesrS%8-"lfR^!(95*~> -s)S5As8W)KqVM,3!+LN9J_n#q!b22SqpkQ"r8n'Vs3:GkqVM/4!i5k@qpkQ""m5jb!-<43~> -!]^8\rRLc$qW7c,JTJMG!.4]d!.4]d!.4]d!/(8l!/(8l!/(8l!/(8l!/pht@uG\TF,PBdF,PBd -F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-M#m -F-M#mF-M#mF-M#mF-M#mF-M#mF-M#mF-L_ps81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-3Ih~> -"%3.hdf.hrgA]t.ir/!>1kC(kI/nitI/nitI/o!#I/o!#I% -hYuO6joM1UrmLesrS%8-ro+%Bc2^7_~> -!cnAArRLc$qW7ceJ^(mQ!7h(n!7h(n!7h(n!7h(n!7h(n!7h(n!7h(ns4..os4..os4..o>MdoT -c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/.!q -c/.!qc/.!qc/.!qc/.!qc/.!qc/.!qc/-]Ss81@ChYZF9V#U>BqVM,3!Mobmeb\/$joWd-F+=~> -!\j]Trmgl%qrRtJjsbjrr+Z:SK6,%I!-A-S!-A-S!.4][!.4][!.4][E.`4HC4gSBC4gSBC5[.J -C5[.JC5[.JC5[.JC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC6WdSC7K?[C7K?[C7K?[C7K?[ -C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[C7K?[.KB=rqVM,3!q)lar71Z#qrRtJV#UAC -qVM/4!mL^"J,~> -!^m%grmq&%rndY6roO:IjtqX7r-8?lNIf5t!.Fil!.Fil!.k,pIYE2qH%gZlH&6rpH&[5tH'*N# -H'*N#H'Nf'H'Nf'H's5/H's5/H's5/H's5/H(BM3H(BM3H(BM3H(BM3H(fe7H(fe7H(fe7H(fe7 -H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe7H(fe72#l"Prmq&%rndY6roO@K -U&WQhrmq&%rndY6roO@KU&WQhrmq&%rndY6s5jC.!(;>~> -!cnAArmgl%qrRtJk$in\r5JZ[`l.r&rl"l^rl"l^rl"l^rl+o^s2G#_s2Ag)c,IZPc,IZPc,IZP -c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZP -c,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,IZPc,F/lr71Z#qrRtJV#UACqVM,3!q)lar71Z# -r8n(*!- -!PlLd.hVN!^pA`c["nqt2CA.]*C&i>SC&i>SC&iV[C&iV[ -C3>/MC2/BBC2/BBC;m8qC2/ZJC2/uSC2/uSC2/uSC2/uSC2/uSC208[C208[C208[C208[C208[ -C208[C208[C20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC20PkC2,3t -rRLc$qr[qH!Moboeb;B/k5XiMV#UDD!o?4/rSIQ?rT41L]` -!%hYuO6k5X]IjtrrXs5)RS%$ehTSbiB7hVNBtpA3Ea#PS":FnYZSH2_pdH2_r9I -! -!s&AOec+G*63#g?k5RaHmK)H!oO7iRPi6'PK9Yk7!J?X%@KP*)3T"9XKE%0%k5S=Fc-87Xp@^4M -K9Y/#s7QRM@eTLMraGkBraGkBraGkKraL#7S75rSC1:Y!C1:Y)C1:YZs*J45C1:Y1C1:Y1C1:Y: -C1:Y:C1:Y:F(/UCF(/UCF(/UCF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF(/UK -F(/UKF(/UKF(/UKF(/UKF(/UKF(/UKF8fVL.KBCtqVM,3rpBf_s8LOKhY0>9k5OcLV#UGE!8dZ? -s5*]?s5s@L!PJJ`~> -!s&APf)FD'5l]^?iWA717/lHPi\^:E!KEZ/D#oWen8/2cSa(%ng!8@B:s5*]Bs5s@H!P/8]~> -!s&AOec+G*63#g?k5RaHmK)HZoXt:Me`"1Bc.29k5OcLV#UGE!8dZ? -s5*]?s5s@L!PJJ`~> -!W`8NrndT>rT=,Gs%<=Z!Tkj'=p"Et9&a"UpA[bT=p"Et9'TU[3T"!Qk05VQp@^4=;E6a@p@^4E -pA[b@>6":$0j=;E0j7air`T;2r`T;:r`X_bpA[a+@TlrV@Tlr^@Tlr^@a4%V@TlrfC0Ff!C0Ff! -C0Ff!C0Ff!C0Ff*C0Ff*C0Ff*C0Ff*C0Ff*C0Ff*C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2 -C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2C0Ff2=t0L%eb\/"k5F]OV#SuqhVRum!9X7J"f21Ke_]0W -5lg'HmK(!$J,~> -!W`8Orn@<9ro*q?rBpbQmc$(qB`e#)=lO,spA.q^B`e#)=mB]%84;?L''@V)=n_\S@:_ttC%h6_ -C%hC+h.co_#n7!EG]E(F_ti,H1q);I;N\4JT5Cl3?[MqUX6OgAF566icBK -l3?[MqUX6OgAF566icBKl2eHrJ,~> -!W`8NrndT>rT=,Gs%<=Z!Tmk`[/^.+UuJc]rrAkb[/^.+V!>>eKAX$Kp?$Fds8R/A["F" -!k5RaH9)n;[jsg1*#'8Z$mZ^VVrr2t>qGI]kk5YJLC/USis6cEV;ZGSWKC8c0;RHH' -s)SY+s6c+L;Vp8_mf/eT[/U(0F*ldDs6bgA;CBH`K2PUKmS`cY;GqSms6c+LV#PL6`W(9_`P#/j -hZ*#.;GuB.XPWnR"G?_q3Q;!t#\s)5;H!5^0spr[s)SV*s6c+L;Vp93hGX(Iqbdflk5YJLC/USi -s6cEV;ZHG(0iI`=0iEATs6cCT;OlnLs6as8rr74iSF6FFS5OE3hVPs.;N(Qr;Gr-V;Gr-V;Gr-V -;GrE^;GrE^;GrE^;GrEf;GrEf;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o -;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;Gr`o;CV=iqVM,3r9aW^p=90!pHe`F!i5P?rSI?9!9X7J -!PJJ`~> -!A\S0Ds+LU4qZ#uKqIM&"s-7/,[dI`#qIO5lhYQZ6A[;>iA]k%,A^8/( -L#2[oTk.fpijRkFAH\:uI7VZ_rs3oDqIO73p,p(gs8Rc]hYQZ6AS'l\[c1llqYOh3Woj0Xl?Qs@ -lMp.Lral-''0Kk"p,loChYQZ:Bk==,qZ#i7^Ae.WM5ok@m]'iLET5utk%0hXI:ZuLF_,-HF_,-L -F_,-LF_,-LF_,-PH"CQTH"CQTH"CQXH"CQXH"CQXH"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\ -H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"CQ\H"Ai+f)=>%hYuO6k5OZGmK0*Uf)FD%5l3tKlMp8R -U%[(9gAXA86icBKl2pCb!.Y~> -!k5RaH9)n;[k$n4p#0$$1p=6P,rr2u;qQpX\pAb0d]sQ>`s7Y"B[/]h'c1_1f[,1f^ -s2>H8s7Y!M[.a4W/s7X_6ZmY#9c*Xk7p9al"['[g?s7Y!MhZ(R%k5WE-k2s%i -mf3"2[']Q#hY-oT"O6tBKBE15#eg9<[']l5F5Hors2>E7s7Y!M[.a4Mp9al"qm6a]pAb0d]sQ>` -s7Y"B[/^.>F0tuIF0s3[s7Y!M[+4mMs7XForr75feb9%:e[3 -!pAa!Vs6`0^pA\#Nk5TL+F';35;CIJ']h22jUbVT:0k0kEC;p3VHiK!rmf/2;p3TF* -mV9`@>#P(ohP;n*;BrRK5tYV[s&(TFp+]J=p+^%Ms&)J_mV9`@>#P(ohP;mgjtZg4I\d##HYSd2 -SH$Q3^&O;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;Ntoo;CV>9hYZI4mK'-WrS@TAhVS.l!)!1W!MoGd -hYTS=k5=WJ]` -!sRQPH!tu0;#=NHOoN-l?0\FTp@^U_p?le7s(R2eO]CiLO]Ct' -=n_9#_Z+=UpAa!L5lP%6])PT'EVB675kan6?2!tSD>*g3;"j -!5s[Nns%5:Ts5l=6pA[E5p@^45 -p@^5*s.hZ5s+5pmQ -s.hZ5s+8kM*0p@^6's%5:Ts5l=6pA[E5;Hj+>;Hc[bHWj$6 -K3Cl>K47GFK47GFK47GFK47GFMdf:NMdf:NMdf:NMdf:NMdf:NP[[6WP[[6WP[[6WP[[6WP[[6W -P[aYb)3eT&8sEdW8sEdW8sEdW8sEdW8sEdW8sEfa8c^C7r8.>5qsOLX!MoGfh>fk=k5XiL9)e8Y -p&Uu_r8%G9r': -!W`8Srnd\7qEtNYmdBZ:hDG.5$_@Sc>]\Q2c\Ds2&@DlFq-8 -8=BLX8s/Jb\s,$1D>sMOm9NCf[4QcZD6tQD\9Nh)c83g:[O -ro3q>s69SPrpKgW"/5GBgA]q/iql.DlMg2Qo""gO~> -!mklSH&V1SGT*>pA^%tPa%+"s+>s*s6bf@s8R^us8RGA -s8R/Zs2BW0s/_ajs+>[us*LRAs)X_(s2D(0PaqTGs8OC'^&O=Ts8R/bs2BW0s/_ajeXZ[5c)gql -`W*o0`W*$0s8RFmMuKLsk5TLuV#UI9SH&V1V#UI9V#UI9`W*o0`W*$0s8RFmMkk]HrM4r:s,25g -P`,88K7g9*mYdn@s)Y"9s)ZHb`Il/0XS2[PH^pUaV#UI9pA]btXT.^HV#UIAH^(W3eWd/2UqNk* -UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:UrB^:Us69BUs69BUs69BUs69BUs69B -Us6:HU`%FaUnl8BUnl8BUnl8BUnl8BUnl8BUnl8BrhKR(pAEeEk54THp&Uu_rS@N?qr[qH!)!7Y -s7QJhpAEbIk57LF9)S)Yp:UHV~> -!"\h63D)nj>"VD>@S07F@S07F@S07F@S07F@S07N -@S07N@S07N@S07N@S07N@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W@S07W -@S07W@S07W@S05pPY*CurS@OMr'C -!ep@^UO -p@^VOr;V8;s8P>m@9H`Mp@^WFs#a;(s8P?0p@^UoBjLbY86K)LD-:"uD-:#$D-:#$D-:#$D-:#( -D-:#(EEQG0EEQG0EEQG0EEQG0EEQG4EEQG4F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8F]hk8 -F]hk8F]hk8F]hk8F]hiMR9;B;gA]q/SbYYTV=*dNncGNUgA]q17,m5*k5OWI8FGpFncGNUgA]q/ -iqZ"Amf2hY\c@6~> -!art9CCV#UIAV#UI9V#UI9V#UI9 -eboF\]p/QsF/8j9F/8j9F/61ns8VN#q4nASs/b)FF.E:1F4L3g$b_emp9`u,m_/%0eboFM]p/Qs -F8VgJk5TLuV#UI9V#UI9V#UI9V#UI9eboFM]p/QsF82R2rrI22rhTSo%We/9s8RGAs8R/9s8R/j -r;V8[s8R/9XJDZ!s8R0?s)X^;s8RGQs8R/RXJGmHK;> -!s&AXhYZI69)n>Xp&X#!r(7$Ts.oTJ"$-)K1&=KDmf-Jh8f$Rh8kNRmjtTL%p+]25p+]25p+_g3 -V#<"]3VN/$9(qs59(qs58kMBAV#TjKqFV0;s4-h$0hV050pM^6r@n^@XT..QPlK:00pM^6r@nC7 -p@^6=8cc$nr_!4a%l$]Mp+]25p+]25p+_g3V#<"M3VN/$pdtVUs'#@n''B3d8n.h_0hV050hV05 -0pM^6r@r`_s&r;m8m5-dp+b_08nr,@jtU'5p+]`C@fN5a8pa`68qUSF8qUSF8qUSF8qUSF8qUSF -8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW8sEdW8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_8sF'_ -8sF'_8sF'_8sF'_8d(An8h'K5h>l^962X=Tmeuh[V"XfE!Tl]Hk5F]K9()ZO!MoGgh>l^962X=T -mf)n\]` -!s&AXhYuO6k5IaM8FGpFncJO=2#L>TRK'Gg49J.Jp,r1O!p]esrDaWqs&E'5s5lFDp@^UKp@^UK -p@^V:s/u;_'1hij4B;+K4B;+K4B5BX=f)/`;#40#IK.adPsA@Cp,ncCY5LHk8?W!HV3V)7Y!AET -Y5LHb8G;a>r)Ed's8H$up('8cp@^UKp@^UKp@^V:s/u;_"%`.Z4SVnXlMkGo<>+HoYrn[_97,n4.rosRQ8FHKJ!qr>Y -rn[Y7q*b6R!:KjW!P/8]~> -!s&AXhYZI69)n>Xp&X#Zr1!i-s2FqX",$XRF8DC.pA^BUS/1huK:K%CmW4ous)X_1s)X_1s)Z0Z -`VjikKE(smSH&V1SH&V1S=Gh.`W,XrqO@u$s5s$gH^t-9F2e0urGrC"ec4dN[/]:5Hc?$(rGr'n -s8R0 -!W`8Wqr[qHs%<=Zr:U0J.JudG;XXRTH^'.Tk5T0oqar`9s5o5dP[^0_]kYOdM_Ritp+]25p+]2% -s(Z$2s."G#K1bk20hV050hUU.C/V-cC4lQC1&4Eemf3;Q3D0#=0iIH>S9pKQ8pgU<@UfB;C,o2[ -s."G#K1bk21&OWfF8pSQ9(qs59(qs59(qs59'6.g@da8dH^'.Tp@^459'5:68q*<1k)4SN@\!J3 -C;p420hV050hV050j=#FS:d&YSH%`0H^nhCk5T1ls1NKms,/U(p@^458u2Jr3I=q%8pb#>8qUSF -8qUSF8qUSF8qUSF8qUSF8rI.N8rI.N8rI.N8rI.N8rI.N8sEdW8sF'_8sF'_8sF'_8sF'_8gT^: -8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kP=_8kLQ+hVRDWrB^jp>4Zgk!B"/r9aPWr:U;i -p>4Zgk5@UGmeocVp&Vi,J,~> -!W`8Wro3q>s69\S8FGpFo)JCag,/_-$XrK"SV<>c*M,f90s)E&Y -s*7"@meWK.Q&/N7p,r7Q,(9KB:f[5_4B;+K4B;+K4B:PDF`$RCSV<>cs5oGp -R;&5l_KF$$Prr(?p,l@Kp,lpSqONV6M4st3Ob'?K -!W`8Wqr[qHs%<=Zr:U0J@f2`(V"Xi-]u@[TpA^YYqj]Ogs6dS-`N7&YeZ@p5[!S>Cs)X_1s)X_( -s.$1as2D[j]q#-&F.E:1F.Dt(S>=]KXM+YrHhj0WpAb/FMk'hIF/8O0`P'7(SA"t&S>?2bUk>K: -s2D[j]q#-&F8VOP[/ZqdSH&V1SH&V1SH&V1SG)uQXS2\5]u@[Ts8R/1SF6+KS:8`_m_-!HXMt4i -XQKPiH^t-9F.E:1F/8O0`P'7(c2[4F[*>tJpA^Z-s4+L=s0R-Cs8R/1SCRY(K=%GES@u"oS@u"o -S@u"oS@u"oS@u"oS@u"oS@u"oS@u"oSAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"SAhS"S0c.U -S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=IR"S=F'^hVRDWrB^jp>4Zgk!B"/r9aPWr:U;i -p>4Zgk5@UGmeocVp&Vi,J,~> -!.sY0 -mYaC)p+]25p+]0tpA\mPpAaj*;DIu>,cq$b0gSG*p+]0K^%VKoMa:8@s#ECFs#EA;@_ML8mYaC) -p+cG:s4&5X9(qs59(qs59(qs58rNECC0J=Es6be2p@^459(qs5r(;ErhZ*W<@R67@s5oP#3D0#= -0hV050hPogpAaQ=8sJ34s5mcVSG)ttSEBk6S2!#rp@^45F5GG%C0F5%HX]T>K47GFK47GFK47GF -K47GFK47GFMdf:NMdf:NMdf:NMdf:NMdf:NP[[6WP\Nf_P\Nf_P\Nf_P\Nf_P\U4j)3el.8sF'_ -8sF'_8sF'_8sF'_8sF'_8sF)i8cgI0hYuX=Ud7 -!lMg5No)A=`g,/\'$YdKOs6>S7NUlpc9`%XCQ/;Q;iakfOk5X_34@E$>p,l1Fp,l02 -o(m??_Y4#pNC`d:4AbbF4A_%.qJj[Ks7XT<5l"5%Y5cL(9MkHV4A]b/pAaE;86Puh6qmIW6qC-g -_Y4#pNC`d:4SqtTef[L[p@^UFp@^UFp@^UFNUlpcBu9TDlA\@.p,l/Jp@^WH:k"\ds8(_d9UY&C -lBOJ";"jTF;"jTF:hdf?s6>S?Q/;Q;iakfOo(m@"k5X_;4@E$>p,l/shUXf+APc3SAPc3WAPc3W -Bi%W_Bi%W_Bi%WcBi%WcBi%WcBi%WgD,=&kD,=&kD,=&oD,=&oD,=&oD,=&oD,=&oD,=&oD?!EM -Q#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#6Ls!]9?%ro*pOr'^NT!ikh^rq6Demb[s&qaCBRs760_ -!ho&=ro+"A6q%%>!q&TMrpp*_!P/8]~> -!F-Mphs)XF#eb9%:[#:ISs*K\(s*KZgUt,2=p9]bX -s)\(%s5kG^PlLc)PlLc)PlLc)PeHejUnlQ7s7WgXs8R/)PlLc)r02Z;mf3=TP`*6Cs7Wg@K9ZE9 -F-Q_)F-NKNpAainMmVpPs6c,0`V0>-`U4lS>;C6[%rqN[%rqN[%rqN[%rqN -[%rqN]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qgmW]qk[m)82i1PeElW -PeElWPeElWPeElWPeElWPeEmlPQG=^hYuX=Ud7 -!"VD6>"VD>@S07F@S07F@S07F@S07F@ -S07N@S07N@S07N@S07N@S07N@S07W@S07WC._*_C._*_C._*_C._*_C._*_C._*_C._*_C._*_C -._*_C._*_C._*_C._*_8h'3*k54TDp&b8imec/Dmec\Zs.o)[k54TDp&Vi,J,~> -!s&A\ir8*>lMg5No)A=aqURM":]X6Tr]C9R:e3_FrrRIB8GtXP9Me.V49.eK;#`ZX;#`ZX:^'BP -4A8F6r]CZ]:cpj::cpj::e3]29L/S>!'pD\"aNp@6p*a6;#`ZX:]X6Tr]CHW:f'8::f'8:r_NVh -5lNkJ85ME2qbS&BnsN"%Z6N4T81W4SqqT8GtXP9Me.V49.eK -;#`ZX;#`ZX:^C&h4?Pl":e3kN4F:@:83B"76p*Rs6r8#34?Rnhnm+dp:f)^S:f)jW:f)j[:f*!_ -:f*!_:f*!_:f*-c:f*-c:f*9g:f*9k:f*9k:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo -:f*Eo:f*Eo:f*Eo:f*Eo:f*Eo:f*ER2"(A&roX4FrpKdVrq6EiU$hp>roX4FrpKdVrq6EiU$hp> -roX4FrpKdVrq6B(!.Y~> -! -!8jPaa;F*Tq>!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH4>!YH4@R3;<@R3;< -@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R39_Mdet$mel5Emec_X -rrJq`r9!nEqtC'i!Mo/]k54TDp&b9-!.Y~> -!W`8[roX4FrpKdVrq?Bg!S0*t:]OMl49/(#:]OMl49/(*:]b@%8B+L+mF>ua]t@9HE'AQ_i+ -Bj"8/D-]t7EEuC;F^_+T5Zpo[JRqYSKk4(WKk4(WM.od_M.od_M.od_NG23cNG23cNG23cO_mok -O_mokQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>oQ#0>o#*j%% -2"'A_roX4FrpKdVrq?Bg"/5/Bir8*>lMg5No)A@_q?*GZio9t"rp'LNrpp'^!rBJ.J,~> -!!/&g[!h?rV`esh]regc@repf@s,28pP`(HiP`(HiP`(Hq -P`(HqPf8l6P`(I$S;W<,S;W<,S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<4S;W<=S;W<= -S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;W<=S;UkEr9!nEqtC'i -!Mo/]k54TDpAb-nV!e0CqsO@T!roq6J,~> -!!YH$>!YH$>!YH$>!YH,>!YH,>!YH,>!YH,>!YH,>!YH4@R3;<@R3;<@R3;<@R3;<@R3;< -@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R3;<@R39\.IR/sqsO@Trr3"pmeu;Fmec_W -rrJq`rT="FqtC'i!PJJ`~> -!u43g@9#upAQ;DtBj",'D-9P+EEu73 -=]nElI:5fCJRM5GJRM5GKk3qOKk3qOM.K@SM.K@SM.K@SNG2'[NG2'[NG2'[O_IK_O_IK_Q"`oc -Q"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`ocQ"`oc#*imr9Jl1sroX4FrpKdVrq??f -!ho&AroX4FrpKdVrq??f!ho&AroX4FrpKdVrq?Bg!P/8]~> -!`aMh?YHMh?YPMh?YPMh?YPMh?Y?Mh?YX -P_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UiP_4UqP_4UqP_4UqP_4UqS:cI$S:cI$S:cI$S:cI$ -S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cI$S:cH'meu;Fmec_WrrJq`rT="FqtC$h -!Mo/^k54TDpAb-n]` -!W`8_qsO@Tr;QfJ.=k*B9"R[t.IQ?\qsO@Tr;QkpmcN[/mec_Urr](bk2uR/qtC!g!PJJ`~> -!W`8_rp'LNrpp'^rqcZp!R`fU=f5Df< -!W`8_qsO@Tr;QfJ@Y(>+Uq -!!)DN!%EI)JI&jn!%I<"!2T"H!2T"H!!%N~> -!!)DK!&T64JI&jn!&X)*!28eB!28eB!!%N~> -!!)DN!+LKbJI&jn!+P>[!2T"H!2T"H!!%N~> -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -!!<1^P!!:jS!;tRN!:/A:!9Mr7!:SY;!!_-W!8?-,!.ijZgAc^- -U&X9;\c@6~> -!]` -!]` -!!<1^P!;Y@K!:8G>!<1^P!9W#8!:SYA!;bFL!<:dQ!.ijZgAc^- -U&X9;\c@6~> -!]` -!]` -! -!]` -! -! -! -!WJ,~> -! -!WJ,~> -!T!!(R"!!(R"qZ$]J!!)rIrW%N"RaqFj"f21\k.LbF~> -!Y!!(a,!!(a,qZ$]O!!)rNrW%N'RbIdm"ektYk.1PC~> -!T!!(R"!!(R"qZ$]J!!)rIrW%N"RaqFj"f21\k.LbF~> -! -! -! -!WJ,~> -! -!WJ,~> -!s+:KNs5rIW!.Y~> -!O -!8@AOrS%2Ms4[JQs4[JQo@j3ErS%8O!nmVSrn@APs4[DOs4[JQrS%2MJ_HRHs+(?Is5rIT!.Y~> -!s+:KNs5rIW!.Y~> -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -!WJ,~> -! -!WJ,~> -! -! -! -! -! -! -! -! -! -!gPsq>gMrrW)hsquHbuquHAjquHYrq>^MsrW)r!rVur"q>^MsquH#` -!!)u!!!*#"!!)u!!!%SOSZMkZrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!gQLq>gNKrW)iLquHcNquHBCquHZKq>^NLrW)rOrVurPq>^NLquH$9 -!!)uO!!*#P!!)uO!!%T(S_F,Drn@C'rPJU7s4[L(r5/L6#25dNk2s5TJ,~> -!gQXq>gNWrW)iXquHcZquHBOquHZWq>^NXrW)r[rVur\q>^NXquH$E -!!)u[!!*#\!!)u[!!%T4S`]tPrmh%$rOr72s4..%r4W.1#1]OLk2s>WJ,~> -!WJ,~> -! -!DWjo>DYjo>DNjo>DWjo>D[joYVG -joG>A!!*#\!!)u[!!*#\!!)6F!!)u[!!*#\!!)u[!!%T4S`]tPrmh%$rOr72rmh%$rOr72#1]OL -k2s>WJ,~> -!]` -!PrRq5Orn7>PptG`Jmb.X@rn7>PrRq5OJ_H[Ks8W)Ps+10ds8W&Os+1-cs8N;W -U&X9;\c@6~> -!A!!*#\!!)u[#ls,M!9WDDk2l[BjoPPF!;bgX!;kmY!:]+N!;YaW!<)$^ -!9WDDr8mtZroO1\rT4([roO1\pu_SVmcFKLroO1\rT4([J``Ncs8W)Ks+C]` -! -! -!A!!*#\!s%KG!;bgX!;bgZ!9O:Xjo>DYjo>DNjo>DWjoYVGjoG>A!!*#\ -!!)u[!s%KG!;tsZ!;P^V!:T%M!<)$[!<)$[!.j:'k5YJ\ec1:$^&S-1ec1:$^&S*:eYN6-k.LbF~> -!WJ,~> -! -!A!!*#\r;c]V!!)oY!!*#\!!)oY!!)oY!!)NN!!)iWr;ccX!!*#\!!)u[ -r;ccX!!)-C!!)rZ!!)u[!!%T4S`]tPrmh%$s1SI4qpk_!rk8@3#1]OLk2s>WJ,~> -! -!=!;kIM!<(UO!.ijpgAh3PgAca(_Z0Z4gAca(_Z0W?g7eQ/ -k.1PC~> -!A!!*#\!s%KG!;bgX!;kpV!;kmY!;kmY!<)$[!;5IS!<)$[!<2*_!9WDD -qrRq[joG>A!s%KG!;tsZ!<)$[!:/bI!;kmY!<)$[!.j:'k5YJ\ec1:%^&S-/ec1:%^&S*:eYN6- -k.LbF~> -!]` -!PrRq5Om+MF>qUtoLrRq5OJ_H[Ks8W)Ps+(6gs8VoKs+13e -s8N;WU&X9;\c@6~> -!A!!*#\!!)u[!!)rZ!!)rZ!!)rZ!!)rZ!!)oY!!)u[!!)]S!!)u[!!*#\ -!!)u[!!)u[!W_?_r8mtZrT4([roO1\rT4([m,e9JqW7bXrT4([J``Ncs8W)Ks+:Bds8VoFs+C?b -s8N;RV#TT>]` -! -! -! -!gMrquHbur;Zi!r;cl!quHbuq#L/jq#LGrq>gGp!!)quq>^Msq#LAp -rrDYlqZ-Srr;_DMS?2bYrmh%$s8VbE$,-B=eYN6-k.LbF~> -!gNKquHcNr;ZiOr;clOquHcNq#L0Cq#LHKq>gHI!!)rNq>^NLq#LBI -rrDZEqZ-TKr;_E&SD+#Crn@C's8VbC$,Z`Bg7eQ/k.1PC~> -!gNWquHcZr;Zi[r;cl[quHcZq#L0Oq#LHWq>gHU!!)rZq>^NXq#LBU -rrDZQqZ-TWr;_E2SEBkOrmh%$s8VbE$,-B=eYN6-k.LbF~> -! -! -! -! -! -! -! -! -! -!Xs4*qFk2s>WJ,~> -! -!Xs4*qFk2s>WJ,~> -! -! -! -! -! -! -!^MsquEau!!(0C!!)nt!!)2`rW)5brr@bSs6fm:s+C@O -p=91qs8N;RV#TT>]` -!^NLquEbN!!(0q!!)oM!!)39rW)6;rr@c,s8W)Ps+14M -p=fOts8N;WU&X9;\c@6~> -!^NXquEbZ!!(1(!!)oY!!)3ErW)6Grr@c8s8W)Ks+C@O -p=91qs8N;RV#TT>]` -! -! -!DUjo>DYjo>D[jo>D\jo>D[jo>D\jo>C[jo>D!jo>DCjo>DGjo>C8k5YJ\ -ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!DVjoPPF!;tsZ!<)$[!<2*\!<)$[!<2*\!;P^V!4:nd!<)'[!<;3]!<;3\ -!<;3\!;GXT!<2-[!!_Qc!9WDD!<)'Z!;u!W!;kpX!:f1O!;kpW!;kpX!!23^roO7^k2uXCMWXs= -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -!BZq:Z)Sg&Tj\!8?-, -rRq5Op"BBGr7V,Nrn7MUg&Tj\!;tON!;kIM!;Y=K!<1[P!:nhD!;tON!<(UO!<(UO!<1^P!<1[S -!8?-,Lt_n/rn@C's8VfHs+14M#25dNk2s5TJ,~> -!DVjoPPF!;tsZ!<)$[!<2*_!9WDDr8mtZpu_SVZfV5fq;qq_joFQ+!9WDD -rT4([p#Z5Sr8mtZroO@ajoFQ+!;tsZ!;kmY!;YaW!<2*\!:o7P!;tsZ!<)$[!<)$[!<2-\!<2*_ -!9WDDM!"a;rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!]` -! -!DWjo>D\jo>D[k555Xk5>;Xjo>C[jo>DWk5PGYjo>D[jo>DSjothJjoFQ+ -!<2-\!;P[V!;kmY!;bgX!;tsZ!;#=Q!<)$[!;km\!9WDDr8mtZroO7^joC2!s8W)Ks+C@Op=91q -s8N;RV#TT>]` -!s!3E7%XK2F$X8i7pX8i7tX8i7sXSMqgX8i8!X8i7tX9/I(X8r$srr@eTs6fm:s+C@Op=91q -s8N;RV#TT>]` -! -!D[jo>D\k555Xjo>D[jo>D\joYVGjoG>A!!)u[!!'.`!!)iW!!)iW!s%KG -!;,CX!9WDDk2l[Cjo>DUjo>DYjo>DXk5#)Ljo>D[jo>DYjoYVGjoG2=rr@f9s8W)Ks+C@Op=91q -s8N;RV#TT>]` -!]` -!cLg&Qo^s8W)Ps+14M -p=fOts8N;WU&X9;\c@6~> -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!'.`!!)iW!!)iW -!s%KG!;#=U!9O:D!<)$[!;GUU!;kmY!;bgX!:AnK!<)$[!;km\!9WDDpuVVXjoC2!s8W)Ks+C@O -p=91qs8N;RV#TT>]` -! -! -!D[joYVGjoG>A!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)u[rrBCf!!*#\ -!!)u[!!)fVrrDWPrr<,_!!)u[!!)cU!!)oY!!*#\!!)u[!!)u[!!)WQ!!)rZ!!)u[!!)u[!!)u[ -!!*#\!s%KG!/Te;s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!^Msq#LAprrB@+rW)nur;cYp!!)Skrr<,%!!*#" -r;c_rquHYrrW)hsr;cJkquH\sr;c_rr;churrE)#rW%hWs6fm:s+C@Op=91qs8N;RV#TT>]` -!^NLq#LBIrrB@YrW)oNr;cZI!!)TDrr<,S!!*#P -r;c`KquHZKrW)iLr;cKDquH]Lr;c`Kr;ciNrrE)QrW%i0s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!^NXq#LBUrrB@erW)oZr;cZU!!)TPrr<,_!!*#\ -r;c`WquHZWrW)iXr;cKPquH]Xr;c`Wr;ciZrrE)]rW%i]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!:Q`!.ik1gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -! -! -! -!;Zk5GA[k5G@4jo>DMk5GAXk5G@3k0`>ks8LRKKE(uFec1:% -rs%#Ls5rIW!.Y~> -!WJ,~> -! -!D[joYVGjoGAB!!*#\!!)u[!!*#\rrE&\rr@W4!!)EK!!)iW!!%T4dH:K/ -rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!D[joYVGjoGAB!s%KG!;km_!9WDDjoFQC!<)'[!3G>_!!_Qc!9O7]k5GA\ -k5GARk555YjoGJErW)iXrW)fW!!)iW!!%T4dH:K/rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -!DSjo>D[jo>D\k5PG\jo>D[jo>D\jo>DYjo>DWjo>C4k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -! -!;Yjo>D\jo>D\jo>DYjp;%MjoFQ+!9WDDV -!]` -! -!]` -! -! -!DXjo>D\jo>D\jo>DYjoYVGjoG>A!!&kX"p!fJ!9WDDroO:_k2l[4jo>D\ -jo>D[jo>D\jo>DTjo>DWjo>C4k0`>ks8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DXjo>D[jo>D\jo>D[jo>D\jo>DZjo>D[k5PF^jothJjoFQ+!<)'[!;#=Q -!<)$[!<2*\!<)$[!<)$[!<)$[!;tsZ!;YaW!.j:[k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -! -!;Yk5GAZjo>D\k5>;Zk5GA[k5GA[k5PF_k5G>ajo>DD!!)u[!!)WQquH`Y -rW)u\rW)oZr;cfYquH]XquD<1e)p]1rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!:2k3D(/!9rYF!:&_H!.j:tk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!C4k0W5j!9rVG!.j:tk5YJ\ec1:%s7Y"CKE(rUeYN6- -k.LbF~> -! -!;Mjo>DYk5>;Wk5G>]joGDC!W_BFrW)oZrW)oZrrE)]rr@W4!p9O_rmh%$s8VfCs+C@O#1]OL -k2s>WJ,~> -! -!PrRqDTg&Tj\!.il( -s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!D[jo>DYjo>D[k5PFLk5PDejo>DD!9WDD!<2*\!<)$[!<2*\!<2*\!<)$[ -!;kmY!;tsZ!<)$[!:o7P!;tsZ!<)$[!<)$[!<2-\!<2*_!9WDDr8mtZroO1\rT47`joFQ+!.j;4 -s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -]` -!Pr7V5Qg=cQ#g&M-Ig&M-D -g&M-Og&M-Mg&h?/g&V')!!*#P!W^pSr7V,Nr7V,Nrn@APJ_L(Vs8W)Ps+14Mp=fOts8N;WU&X9; -\c@6~> -!D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roO1\r8n(]k2l[;jo>DUjo>DP -jo>D[jo>DYjoYVGjoG>A!!*#\!W_?_r8mtZr8mtZroX4\J`cpns8W)Ks+C@Op=91qs8N;RV#TT> -]` -! -! -!D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roX%WroX.ZqW7bXqr[eVo&]oP -rT4([qrRt\k2l[=k5PGYk5#)Wjo>C4k5=BAs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -!Po\'9Fqq;#Mr7V,NrRq5O -o%F'DrRq5Oqq;,Pg=cQ%g&_9.!;tON!;P7J!.il%gAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!D[jo>DYjo>CFjp;%MjoFQ+!9WDDrT4([roO1\o]?,RqrRkYr8mtZrT4([ -o&]oPrT4([qrRt\k2l[=joPPF!;tsZ!;P[V!.j;1k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!WJ,~> -!Rg=cQ*g&M-M -g&M-Ng&M-PgA_0Dg&M-Ng&M-Og&M-Og&M-Og&M-Pg&h?/g&V')!!)uO!!*#P!!%T(r7_2Nrn@C' -s8VfHs+14M#25dNk2s5TJ,~> -!DZjo>D[jo>DZk5PFLjp;%MjoFQ+!9WDDrT4([rT4([rT41^k2l[Bjo>DY -jo>DZjo>D\k5PGPjo>DZjo>D[jo>D[jo>D[jo>D\joYVGjoG>A!!)u[!!*#\!!%T4r9"%Zrmh%$ -s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -! -!;Wk5PFMk5G>_jo>DDquHcZrW)oZr;ciZquHZWquH]XrW!#^!!)]S -quH]Xr;c`Wr;ciZrrE)]rW)oZr;ciZr;_E2roX7\rmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!^MsqZ+%*!!)u!!!*#"!!)u!!!*#"!!)u! -!!*#"!!)u!!!)YmrrDqt!!)u!!!)YmrrDkr!W];%o;qrlq5aVtX8qmo!!)u!!!*#"!!)u!!!)Vl -!W];%rN#u!ri?)"oW/#mrN#u!rN#u!q5jSrqQ'YspoFMsX8r1"rrDVks6fm:s+C@Op=91qs8N;R -V#TT>]` -!^NLqZ+%X!!)uO!!*#P!!)uO!!*#P!!)uO -!!*#P!!)uO!!)ZFrrDrM!!)uO!!)ZFrrDlK!W^pSo@j3Eq:YlMg&Ud!!!)uO!!*#P!!)uO!!)WE -!W^pSrRq5Orn7>Po\'9FrRq5OrRq5Oq:biKqUtoLpt>cLg&V')rrDWDs8W)Ps+14Mp=fOts8N;W -U&X9;\c@6~> -!]joGDCq>^NXqZ+%d!!)u[!!*#\!!)u[!!*#\!!)u[ -!!*#\!!)u[!!)ZRrrDrY!!)u[!!)ZRrrDlW!W_?_oB-&Qq;q_YjoG&9!!)u[!!*#\!!)u[!!)WQ -!W_?_rT4([roO1\o]?,RrT4([rT4([q<%\WqW7bXpuVVXjoG>ArrDWPs8W)Ks+C@Op=91qs8N;R -V#TT>]` -!WJ,~> -! -!D[jo>DZjo>DZjo>D[jo>D\jo>D\k5PG[jo>D[joYVGjoGAB!!'Ii!!)u[ -!!*#\!!)u[!!*#\!!)u[!!*#\!!)u[!!)]S!W_?_qrRkYrT4([p#Z;UjoG5>!W_?_o]?2TjoG5> -!W_?_o]?,RrT4([q;qYWoB$)SjoGAB!!)u[!!)]S!!)u[!!*#\!!)iW!W_?_qrRkYpZ;MWjoGAB -!W_?_o&fuPrmh%$s8VfCs+C@O#1]OLk2s>WJ,~> -!WJ,~> -!PrRq5Orn7>PrRq5Oq:YfKo@a0Eqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UTq -!!)lL!!)WE!s%'/!<(UO!<(UO!:\\B!<1[P!;G1I!;kIM!;P7M!8?-,qq;#Mo%O-Drn@C's8VfH -s+14M#25dNk2s5TJ,~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!<)$[!<)$[!<)$^!9WDDr8mtZrT=+[ -\E3bkroO1\rT4([roO1\rT4([q;qYWoB$#QqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFl4 -!!)lX!!)WQ!s%KG!<)$[!<)$[!:]+N!<2*\!;GUU!;kmY!;P[Y!9WDDqrRkYo&fuPrmh%$s8VfC -s+C@O#1]OLk2s>WJ,~> -!c2 -rN#u!rN#u!ri?)"rN#u!qQ'YsnuMfkqlBbtrN#u!o;holqQ'c!XK2EmX8i7sX9/I(X8qak!!)hr -!!)Vl!s#F(!<&u!!<0)"!:d,j!<&u"!3H/"qlBbtqlBeuXSr4tX9/I(X8r.!!!)Sks6fm:s+C@O -p=91qs8N;RV#TT>]` -!PrRq5OqUtoLo%F'Dqq;#MrRq5Oo@a0EqUu#Og=cPtg&M-Lg&h?/g&UWr!!)iK -!!)WE!s%'/!<(UO!<1^P!:ebC!<(UP!8@DPqq;#Mqq;&NgAV*Mg&h?/g&V$(!!)TDs8W)Ps+14M -p=fOts8N;WU&X9;\c@6~> -!D[jo>D[joPPF!<)$[!<)$[!<2*\!;P[Y!9WDDrT4([r8mtZrT=+[\`Nkl -rT4([rT4([roO1\rT4([qW7bXo&]oPqrRkYrT4([oB$#QqW7k[k2l[7jo>DXjoYVGjoFo5!!)iW -!!)WQ!s%KG!<)$[!<2-\!:f1O!<)$\!9X7\qrRkYqrRnZk5GAYjoYVGjoG;@!!)TPs8W)Ks+C@O -p=91qs8N;RV#TT>]` -!]` -! -!D[jo>D\jo>D\jo>D\jo>D\jo>DZk5>;Xk5>;Yjo>DZjo>Cgjo>DZjo>D[ -jo>D\jo>D[jo>DYjo>DZk5,/Vjo>DYjo>D[jo>D\k5,/Vjo>DYjo>D\jo>DPjo>DYjo>D\jo>DO -jo>DVjo>DRjo>D\jo>DZk5G>]joFu7!!)rZrrE&\!!)rZ!!)oYrrE&\!!*#\!!*#\!!)oY!!)TP -s8W)Ks+C@Op=91qs8N;RV#TT>]` -! -]` -! -!;Sjo>D[joYVGjoGAB!!)rZ!!'Fh!!)oY!!)u[!!*#\!!)u[ -!!)rZ!!)NN!!)oY!!)u[!!)WQ!!)oY!!*#\!!)TP!!)oY!!*#\!!)TP!!)fV!!)WQ!!*#\!!)fV -!!)WQ!!)oY!!)u[!!)rZ!!)oY!!)u[!!*#\!!*#\!!)oY!!)TPs8W)Ks+C@Op=91qs8N;RV#TT> -]` -!m!;EPp!;!;h!;W\r -!;*>m!;`bs!<&u!!;rnu!;iht!<&u!!<0(s!;rnu!:m5kmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -! -!DXjo>DZjoYVGjoGDC!!)u[!!)u[!!)u[!!)u[!s%KG!;tsZ!4M"i!;bgX -!<)$[!<2*\!<)$[!<)$[!:T%M!;kmY!<)$[!;#=Q!;kpU!;#=Q!;kpU!;,CR!;GUU!;#@M!;YaW -!;,CR!;bgX!<)$[!;tsZ!;kmY!<)$[!<2-X!;tsZ!:o:Ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!DXjo>DZjoYVGjoGAB!!*#\rrE&\!!)u[!!)u[!s%KG!<)$[!;u!Z!57Lp -!<)$[!<2*\!<)$[!<2*\!<)$[!<2*\!<)$[!;#=Q!;kmY!<)$[!;#=Q!;GUU!:o7P!;GUU!;kpY -!;tsZ!<)$[!;kmY!;bjX!;P[V!;YaW!;kpY!;tsZ!<)$[!<)$[!<2*\!;tsZ!;bgX!<2*\!;bgX -!;kmY!:o:Ps8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -!;Yk5>8[k5#)Vjob\HjoFQC!<)'V!!)0Y!;kpY!57Ol!<)'Y!;u!X!<)'W -!;5LP!;u!X!;,FO!;bjW!;5LP!;bjW!;u!Z!;u!V!;kmY!;bjX!;YdV!<)'Z!;bjX!;u!V!;u!Y -!<)'X!;kpX!;bjW!<2-Y!;,FRs8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!gPsq>^MsrW)u"rW)u"q>gMrrVuu#!.h5& -XOXEPmf(c:KE(uFec1:%rs%#Ls5rIW!.Y~> -!gQLq>^NLrW)uPrW)uPq>gNKrVuuQ!.ijT -g==pWs8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!]joGDCr;ciZrW)u\rW)u\q>gQXq>^NXrW)u\rW)u\q>gNWrVuu]!.j9` -k1/Vos8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!D\k5PG]jo>D[jo>D\k5PG\jo>D\jothJjoFQ+!<2*\!<)$_!9WDD!<2*\ -!<2*e!9WDDk2l[+joGDCrr@W4J`bMFs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -!A!W_?_qrS.ak2l[+!9WDDroOCbk2l[+joGDC!!)u[#QX#L!9O:DjoGDC -#ls,M!9WDDk2l[Bjo>DZk5PF4k(2[Mk5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -! -! -!DYk5>:2k(2[E -k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!]` -! -!]` -!WJ,~> -! -!WJ,~> -! -!(E^s8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!D[joYVGjoGAB!!*#\!!*#\rrDrY!!)oY!!)u[!s%KG!<2-\!;kmY!;u!Z -!<2*\!;u!Z!.j9`k1o,!s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -! -!;Yk5>;Zk5GA[jo>D[k555Yk5#&Xk5GA[jo>D[k555YjoGJErW)iXrr@W4 -J`bbMs8W)Ks+C@Op=91qs8N;RV#TT>]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!D*jo>Cdk5>;D/k5PG)jo>D+k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!D*jo>DYjo>DEk5GAGk5PGMjo>D;jo>D>jo>DOjo>DEk5PGDjo>D, -k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -! -!CTjo>DCjo>DGjo>DMjo>D;jo>D>jo>DOjo>DDjo>DDjo>D,k5YJ\ec1:% -s7Y"CKE(rUeYN6-k.LbF~> -! -!O"kiqVg&M-PgA_0OgAV*MgA_0QgA_0NgAV*FgAV*O -gAV'Vg&M-,g&M-OgAV*MgACsJgAV*Bg&M-MgAM$KgAV'Qg&V-+!W^s.rW)ZGqZ-TKr;cfMrrE)Q -rrDWD!!)uOrr<8W!!(^Q!8@DPs4[GPp=fEEr7_)LrRq8PgAV*;g&_9.gAV*NgAV*OgAV*PgAV*N -g&M,ugAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!D\k5PG[k5GAYk5PG]k5PGZk5GARk5GA[ -k5G>bjo>DDjo>D[k5GAYk555Vk5GANjo>DYk5>;Wk5G>]joGDC!W_BFrW)ZSqZ-TWr;cfYrrE)] -rrDWP!!)u[rr<8c!!)-]!9X7\s5s:\p?)8Qr9!qXrT4+\k5GAGjoPPFk5GAZk5GA[k5GA\k5GAZ -jo>D,k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -! -!Ple2F@g=cQ)g&M-Pg&M-Pg&M-Og&M-Ng&M,ugAh3PgAca(s7Y1HJcG`Sg7eQ/k.1PC~> -!DYjo>DWjo>D\jo>DPjo>DZjo>D[jo>D[jo>D\k5PG\joYVG -joFu7!!)oY!!)u[!!)u["T[Zbk2l[8jo>DZk5PDdjo>DD!9WDDrT4([o]?,RqW7bXrT4([roX4\ -roO1\lfJ9Lk2l[Ajo>D\jo>D\jo>D[jo>DZjo>D,k5YJ\ec1:%s7Y"CKE(rUeYN6-k.LbF~> -!lTiqlC)(XK2E'X8o?'!<&u!!;*>m!;3Dn!<0&"!;rnu!:6cg!3?1uX8i7uX9/I( -X8r4#!!)nt!!(?Hs6fm:s+C@Op=91qs8N;RV#TT>]` -!+N -!8?-,g=cQ+gA_0Jg&M-Mg&M-Lg&M-Ng&M-Eg&M-Og&M-Mg&h?/g&V')!!*#P!W^pSn_*sCr7V,N -qq;#Mrn@APnCdjBqq;>Vg=cP\g&Tj\!<(UO!;+tF!;5%G!<1[P!;tON!:8D@!87GNg&M-Ng&h?/ -g&V**!!)oM!!(@!s8W)Ps+14Mp=fOts8N;WU&X9;\c@6~> -!D\jo>D\jo>DZjoPPF!;tsZ!<2*\!<)$[!;kmY!;kpY!;kmY!;tsZ!;>OZ -!9WDDk2l[Ck5PGVjo>DYjo>DXjo>DZjo>DQjo>D[jo>DYjoYVGjoG>A!!*#\!W_?_n`BfOr8mtZ -qrRkYroX4\nE']NqrS1bk2l[+joFQ+!<)$[!;,CR!;5IS!<2*\!;tsZ!:8hL!9O:Zjo>DZjoYVG -joGAB!!)oY!!(@-s8W)Ks+C@Op=91qs8N;RV#TT>]` -!lTir2]kuqlBbtri?)"m]6Bgr2^)&XK2E' -X8r7$!s#F(!;!8l!;W_o!<0&"!;rnu!:6fe!;iko!<0&%!3E7%qlBbtcE.'6rmh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -!Pmb.X@r7V>Tg=cP\ -g&V-+!s%'/!;"nE!;Y@H!<1[P!;tON!:8G>!;kLH!<1[S!8?-,qq;#McJ& -!DXjo>DZjo>D\jo>D[jo>DYjo>DYjo>DXk5#)OjothJjoFQ+!<2*\ -!;GUU!;kmY!;bjS!;#=Q!<)$[!;km\!9WDDpu_SVnE']Nr8mtZqrRkYroO1\mcFKLr8n1`k2l[+ -joGDC!s%KG!;#=Q!;YdT!<2*\!;tsZ!:8kJ!;kpT!<2*_!9WDDqrRkYcK>0,rmh%$s8VfCs+C@O -#1]OLk2s>WJ,~> -!WJ,~> -!cLg&UZs!!)rN!!)oM!!*#P!!)H@!!)rN"p!B2 -!8?-,rn7GSg=cPug&M-Lg&M-Og&M-Pg&M-Ng&M->g&_9.!;tON!;P7M!8?-,qq;#McJ& -!A!s%KG!;bgX!;tsZ!<2*\!<)$[!;kmY!;kmY!;bgX!:T%Q!9O:D!<)$[ -!;GUU!;kmY!;bgX!:AnK!<)$[!;km\!9WDDpuVVXjoFr6!!)rZ!!)oY!!*#\!!)HL!!)rZ"p!fJ -!9WDDroO:_k2l[8jo>DXjo>D[jo>D\jo>DZjo>DJjoPPF!;tsZ!;P[Y!9WDDqrRkYcK>0,rmh%$ -s8VfCs+C@O#1]OLk2s>WJ,~> -! -!Tg=cP\g&V**rrDWD!!*#P!!*#P!!*#PrrE&PrrE&P!!)rNrrDWD -!s%'/!;tON!<(UO!<(XO!;bCL!7' -!A!!*#\!!)u[!s%KG!<2-\!<2*\!<2-\!;kmY!;kmY!;YaW!<)$[!;5LS -!!;9_!<)$[!;GUU!;kmY!<2*\!<)$[!<)$[!;#=Q!;tsZ!<)$[!<)$[!<)$[!<2*_!9WDDo&]oP -qrRkYrT4([rT4([mcFKLr8n1`k2l[+joGABrrDWP!!*#\!!*#\!!*#\rrE&\rrE&\!!)rZrrDWP -!s%KG!;tsZ!<)$[!<)'[!;bgX!7'a,s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -!]` -!.E!;tRL!<(XM!:\\B!<(XN!!V'V!87DQ -rRq5On_3sBr7_,M#20%Wg&M-,rW)iLrrDZErrE)QrW)oNr;c`K!!)lL!!( -!RQ!;u!X!<)'Y!:]+N!<)'Z!!VKb!9O7] -rT4([n`KfNr9!tY#3Gmcjo>DDrW)iXrrDZQrrE)]rW)oZr;c`W!!)lX!!(=,s8W)Ks+C@Op=91q -s8N;RV#TT>]` -! -! -!C4k/ZTa!:f1O!7p<4!8ci -! -! -!C4k/QN`!:o7P!7p94!8Zc;!;bgX!6s[+s8LRKKE(uFec1:%rs%#Ls5rIW -!.Y~> -! -!r9!<(XH!5[Cf!63ams8LaPJcGcDgAca(rs%2Ns5rIT!.Y~> -!:2k.0XQ!<)'T!5[gr!641$s8LRKKE(uFec1:%rs%#Ls5rIW!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!]` -! -!]` -!]` -! -!]` -!]` -! -!]` -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!sW8Jc*Cbrs%2Ns5rIT!.Y~> -! -! -! -! -! -! -! -! -! -! -!]` -! -!]` -! -! -! -!]` -! -!]` -!]` -! -!]` -! -! -! -! -! -! -!]` -! -!]` -!%6`p:^M+ldZ07s5rIW!.Y~> -! -!%6`p:^M+ldZ07s5rIW!.Y~> -! -!<@-<9ENq!JbR%\s8RWO_Z0Xeg4@t^gAc^(_YaB._Z0Z%g'(/i9M>EdJ,~> -! -!!)tU"$tIiKDE4Zrrpr*K>%%Ygrc+"MOj8e^aWuqRuq/ldZ/)Mdg-]!.Y~> -!!)t_"&.F"Jbd1]rrq,-J\qHeJ_G\/YhK,."N(3=g=lN*qSN:4le2M9Q#Ue;!.Y~> -!!)u:"-h>gKDE4Zrrpr*K>%%Ygrc+"MOj8e^aWuqRuq/ldZ0'`O*":!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!'as8RZ#J^q!Ts+:Bds8W%Mpq?_-ldZ/)Mdg-]!.Y~> -! -!'as8RZ#J^q!Ts+:Bds8W%Mpq?_-ldZ0'`O*":!.Y~> -! -! -! -! -! -! -! -! -! -! -! -! -! -! -!AeUc8%ea_/nPf:#:PQ64~> -!(U]=lp5lciB@KAapJ,~> -! -!(U]@dmPQ8]%ZiQBkJ,~> -!\j\5rF5AV!+LNZJcCl4nVdBU!^Qh:J,~> -!^m$RrGhFo!-*SiJcCl4nWj)n!_`UJJ,~> -!cn@\rNu18!47=WJcCl4n\tL7!gE]8J,~> -!]^7=mpZ8_J`_OGOlcY%mpZ>a!7cT~> -!^m$Rmr8>$J`_OGOlcY/mr8D&!8;r~> -!cn@\n$E(ZJ`_OGOlcY_n$E.\!7cT~> -">Mn:5sb$M!'u1uJ``*W!/pAVs$6\de^]0~> -s$Qng9MFtr!).t+J``*W!1!(os%EIog=h&~> -s)S5APa(^F!0i&sJ``*W!6+K8s-*Qbe^]0~> -r]0uYn3MW=J\@2Z!+PIarrE&KJ,~> -r^?bdn4\DEJ\$uT!-.O&rrE&PJ,~> -rcA)>n -">Mnk3B;WjJH16$mf3C=s8LQ!~> -r'Z)9JH16$mf3CB!<1]&~> -"DW!mF)um4JH16$mf3C=!<1N!~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lib/et/doc/src/user_guide.gif b/lib/et/doc/src/user_guide.gif deleted file mode 100644 index e6275a803d..0000000000 Binary files a/lib/et/doc/src/user_guide.gif and /dev/null differ diff --git a/lib/et/doc/src/warning.gif b/lib/et/doc/src/warning.gif deleted file mode 100644 index 96af52360e..0000000000 Binary files a/lib/et/doc/src/warning.gif and /dev/null differ diff --git a/lib/et/examples/Makefile b/lib/et/examples/Makefile index 553fe55f3b..67a6536fdf 100644 --- a/lib/et/examples/Makefile +++ b/lib/et/examples/Makefile @@ -1,19 +1,19 @@ # # %CopyrightBegin% -# -# Copyright Ericsson AB 2002-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 2002-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% # @@ -38,7 +38,9 @@ RELSYSDIR = $(RELEASE_PATH)/lib/et-$(VSN) MODULES = \ - et_demo + et_demo \ + et_display_demo \ + et_trace_demo ERL_FILES= $(MODULES:=.erl) diff --git a/lib/et/examples/et_demo.erl b/lib/et/examples/et_demo.erl index 57e7e77246..e439e6882c 100644 --- a/lib/et/examples/et_demo.erl +++ b/lib/et/examples/et_demo.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2002-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2002-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -23,24 +23,29 @@ -module(et_demo). -export([ - sim_trans/0, + sim_trans/0, sim_trans/1, + live_trans/0, live_trans/1, mgr_actors/1, - live_trans/0, - start/0, - start/1, + start/0, start/1, filters/0, trace_mnesia/0 ]). +%% Test +-export([s/0, t/0, t/1, init/0, gen/3]). + -include_lib("et/include/et.hrl"). %%---------------------------------------------------------------------- %sim_trans sim_trans() -> + sim_trans([]). + +sim_trans(ExtraOptions) -> Options = [{dict_insert, {filter, mgr_actors}, fun mgr_actors/1}], - {ok, Viewer} = et_viewer:start_link(Options), - Collector = et_viewer:get_collector_pid(Viewer), + {ok, Viewer} = et_viewer:start_link(Options ++ ExtraOptions), + Collector = et_viewer:get_collector_pid(Viewer), et_collector:report_event(Collector, 60, my_shell, mnesia_tm, start_outer, "Start outer transaction"), et_collector:report_event(Collector, 40, mnesia_tm, my_shell, new_tid, @@ -56,11 +61,13 @@ sim_trans() -> et_collector:report_event(Collector, 60, my_shell, mnesia_tm, delete_transaction, "End of outer transaction"), et_collector:report_event(Collector, 20, my_shell, end_outer, - "Transaction returned {atomic, ok}"). + "Transaction returned {atomic, ok}"), + {collector, Collector}. + %sim_trans %mgr_actors -mgr_actors(E) when record(E, event) -> +mgr_actors(E) when is_record(E, event) -> Actor = fun(A) -> case A of mnesia_tm -> trans_mgr; @@ -94,9 +101,13 @@ start(ExtraOptions) -> %live_trans live_trans() -> - et_demo:start([{title, "Mnesia tracer"}, - {hide_actions, true}, - {active_filter, named_process_info_nolink}]), + live_trans([]). + +live_trans(ExtraOptions) -> + Options = [{title, "Mnesia tracer"}, + {hide_actions, true}, + {active_filter, named_process_info_nolink}], + et_demo:start(Options ++ ExtraOptions), mnesia:start(), mnesia:create_table(my_tab, [{ram_copies, [node()]}]), et_demo:trace_mnesia(), @@ -146,7 +157,7 @@ filters() -> %filters %module_as_actor -module_as_actor(E) when record(E, event) -> +module_as_actor(E) when is_record(E, event) -> case lists:keysearch(mfa, 1, E#event.contents) of {value, {mfa, {M, F, _A}}} -> case lists:keysearch(pam_result, 1, E#event.contents) of @@ -163,7 +174,7 @@ module_as_actor(E) when record(E, event) -> %%---------------------------------------------------------------------- %plain_process_info -plain_process_info(E) when record(E, event) -> +plain_process_info(E) when is_record(E, event) -> case E#event.label of send -> true; send_to_non_existing_process -> true; @@ -182,7 +193,7 @@ plain_process_info(E) when record(E, event) -> %plain_process_info %plain_process_info_nolink -plain_process_info_nolink(E) when record(E, event) -> +plain_process_info_nolink(E) when is_record(E, event) -> (E#event.label /= link) and (E#event.label /= unlink) and (E#event.label /= getting_linked) and @@ -191,7 +202,7 @@ plain_process_info_nolink(E) when record(E, event) -> %%---------------------------------------------------------------------- -named_process_info(E) when record(E, event) -> +named_process_info(E) when is_record(E, event) -> case plain_process_info(E) of true -> {true, E#event{to = pid_to_name(E#event.to), @@ -201,7 +212,7 @@ named_process_info(E) when record(E, event) -> false end. -named_process_info_nolink(E) when record(E, event) -> +named_process_info_nolink(E) when is_record(E, event) -> case plain_process_info_nolink(E) of true -> {true, E#event{to = pid_to_name(E#event.to), @@ -211,7 +222,7 @@ named_process_info_nolink(E) when record(E, event) -> false end. -pid_to_name(Pid) when pid(Pid) -> +pid_to_name(Pid) when is_pid(Pid) -> case process_info(Pid, registered_name) of {registered_name, Name} -> Name; @@ -225,7 +236,7 @@ pid_to_name(Other) -> %%---------------------------------------------------------------------- -node_process_info(E) when record(E, event) -> +node_process_info(E) when is_record(E, event) -> case plain_process_info(E) of true -> {true, E#event{to = pid_to_node(E#event.to), @@ -234,7 +245,7 @@ node_process_info(E) when record(E, event) -> false -> false end. -node_process_info_nolink(E) when record(E, event) -> +node_process_info_nolink(E) when is_record(E, event) -> case plain_process_info_nolink(E) of true -> {true, E#event{to = pid_to_node(E#event.to), @@ -244,21 +255,21 @@ node_process_info_nolink(E) when record(E, event) -> false end. -pid_to_node(Pid) when pid(Pid) -> +pid_to_node(Pid) when is_pid(Pid) -> node(Pid); -pid_to_node(Name) when atom(Name) -> +pid_to_node(Name) when is_atom(Name) -> node(); -pid_to_node({_Name, Node}) when atom(Node) -> +pid_to_node({_Name, Node}) when is_atom(Node) -> Node. %%---------------------------------------------------------------------- -application_as_actor(E) when record(E, event) -> +application_as_actor(E) when is_record(E, event) -> {true, E#event{to = pid_to_application(E#event.to), from = pid_to_application(E#event.from), label = msg_to_label(E)}}. -pid_to_application(Pid) when pid(Pid) -> +pid_to_application(Pid) when is_pid(Pid) -> case application:get_application(Pid) of {ok, Name} -> Name; @@ -268,7 +279,7 @@ pid_to_application(Pid) when pid(Pid) -> %%---------------------------------------------------------------------- -msg_to_label(E) when record(E, event) -> +msg_to_label(E) when is_record(E, event) -> case lists:keysearch(msg, 1, E#event.contents) of {value, {msg, Msg}} -> mnesia_msg_to_label(Msg, E#event.label); @@ -349,3 +360,35 @@ mnesia_msg_to_label(Msg, Label) -> _ -> Label end. +%%---------------------------------------------------------------------- + +s() -> + spawn(fun() -> t(), timer:sleep(infinity) end). + +t() -> + t(500). + +t(N) -> + Collector = init(), + gen(Collector, 1, N), + Collector. + +init() -> + EvenFilter = + fun(#event{label = Label}) -> + case catch (list_to_integer(Label) div 10) rem 2 of + 0 -> + false; + _ -> + true + end + end, + OddFilter = fun(E) -> not EvenFilter(E) end, + {ok, Viewer} = et_viewer:start_link([{dict_insert, {filter, odd_tens}, EvenFilter}, + {dict_insert, {filter, even_tens}, OddFilter}, + {active_filter, odd_tens}]), + et_viewer:get_collector_pid(Viewer). + +gen(Collector, From, To) -> + [et_collector:report_event(Collector, 20, from, to, integer_to_list(I), [I]) || I <- lists:seq(From, To)], + ok. diff --git a/lib/et/examples/et_display_demo.erl b/lib/et/examples/et_display_demo.erl new file mode 100644 index 0000000000..ebcbc2e816 --- /dev/null +++ b/lib/et/examples/et_display_demo.erl @@ -0,0 +1,32 @@ +%% +%% %CopyrightBegin% +%% %CopyrightEnd% +%% + +%module +-module(et_display_demo). + +-export([test/0]). + +test() -> + {ok, Viewer} = et_viewer:start([{title,"Coffee Order"}, {max_actors,10}]), + Drink = {drink,iced_chai_latte}, + Size = {size,grande}, + Milk = {milk,whole}, + Flavor = {flavor,vanilla}, + C = et_viewer:get_collector_pid(Viewer), + et_collector:report_event(C,99,customer,barrista1,place_order,[Drink,Size,Milk,Flavor]), + et_collector:report_event(C,80,barrista1,register,enter_order,[Drink,Size,Flavor]), + et_collector:report_event(C,80,register,barrista1,give_total,"$5"), + et_collector:report_event(C,80,barrista1,barrista1,get_cup,[Drink,Size]), + et_collector:report_event(C,80,barrista1,barrista2,give_cup,[]), + et_collector:report_event(C,90,barrista1,customer,request_money,"$5"), + et_collector:report_event(C,90,customer,barrista1,pay_money,"$5"), + et_collector:report_event(C,80,barrista2,barrista2,get_chai_mix,[]), + et_collector:report_event(C,80,barrista2,barrista2,add_flavor,[Flavor]), + et_collector:report_event(C,80,barrista2,barrista2,add_milk,[Milk]), + et_collector:report_event(C,80,barrista2,barrista2,add_ice,[]), + et_collector:report_event(C,80,barrista2,barrista2,swirl,[]), + et_collector:report_event(C,80,barrista2,customer,give_tasty_beverage,[Drink,Size]), + ok. +%module diff --git a/lib/et/examples/et_trace_demo.erl b/lib/et/examples/et_trace_demo.erl new file mode 100644 index 0000000000..5c16d4b77c --- /dev/null +++ b/lib/et/examples/et_trace_demo.erl @@ -0,0 +1,38 @@ +%% +%% %CopyrightBegin% +%% %CopyrightEnd% +%% + +%module +-module(et_trace_demo). + +-export([test/0]). + +test() -> + et_viewer:start([ + {title,"Coffee Order"}, + {trace_global,true}, + {trace_pattern,{et,max}}, + {max_actors,10} + ]), + %% dbg:p(all,call), + %% dbg:tpl(et, trace_me, 5, []), + Drink = {drink,iced_chai_latte}, + Size = {size,grande}, + Milk = {milk,whole}, + Flavor = {flavor,vanilla}, + et:trace_me(99,customer,barrista1,place_order,[Drink,Size,Milk,Flavor]), + et:trace_me(80,barrista1,register,enter_order,[Drink,Size,Flavor]), + et:trace_me(80,register,barrista1,give_total,"$5"), + et:trace_me(80,barrista1,barrista1,get_cup,[Drink,Size]), + et:trace_me(80,barrista1,barrista2,give_cup,[]), + et:trace_me(90,barrista1,customer,request_money,"$5"), + et:trace_me(90,customer,barrista1,pay_money,"$5"), + et:trace_me(80,barrista2,barrista2,get_chai_mix,[]), + et:trace_me(80,barrista2,barrista2,add_flavor,[Flavor]), + et:trace_me(80,barrista2,barrista2,add_milk,[Milk]), + et:trace_me(80,barrista2,barrista2,add_ice,[]), + et:trace_me(80,barrista2,barrista2,swirl,[]), + et:trace_me(80,barrista2,customer,give_tasty_beverage,[Drink,Size]), + ok. +%module diff --git a/lib/et/src/Makefile b/lib/et/src/Makefile index c590852625..bb6632ee91 100644 --- a/lib/et/src/Makefile +++ b/lib/et/src/Makefile @@ -1,19 +1,19 @@ # # %CopyrightBegin% -# -# Copyright Ericsson AB 2000-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 2000-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% # @@ -127,9 +127,16 @@ $(EBIN)/et_selector.$(EMULATOR): et_selector.erl ../include/et.hrl $(EBIN)/et_contents_viewer.$(EMULATOR): et_contents_viewer.erl ../include/et.hrl et_internal.hrl +$(EBIN)/et_gs_contents_viewer.$(EMULATOR): et_gs_contents_viewer.erl ../include/et.hrl et_internal.hrl +$(EBIN)/et_wx_contents_viewer.$(EMULATOR): et_wx_contents_viewer.erl ../include/et.hrl et_internal.hrl + $(EBIN)/et_collector.$(EMULATOR): et_collector.erl ../include/et.hrl et_internal.hrl $(EBIN)/et_viewer.$(EMULATOR): et_viewer.erl ../include/et.hrl et_internal.hrl +$(EBIN)/et_gs_viewer.$(EMULATOR): et_gs_viewer.erl ../include/et.hrl et_internal.hrl + +$(EBIN)/et_wx_viewer.$(EMULATOR): et_wx_viewer.erl ../include/et.hrl et_internal.hrl + diff --git a/lib/et/src/et.app.src b/lib/et/src/et.app.src index 0c7bef7c3d..dc22ce4223 100644 --- a/lib/et/src/et.app.src +++ b/lib/et/src/et.app.src @@ -1,20 +1,20 @@ %% This is an -*- erlang -*- file. %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2002-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2002-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% {application, et, @@ -25,8 +25,13 @@ et, et_collector, et_contents_viewer, + et_gs_contents_viewer, + et_gs_viewer, et_selector, - et_viewer + et_viewer, + et_viewer, + et_wx_contents_viewer, + et_wx_viewer ]}, {registered, [et_collector]}, {applications, [stdlib, kernel]}, diff --git a/lib/et/src/et.erl b/lib/et/src/et.erl index 9c0a7f8f49..e2cd8564c3 100644 --- a/lib/et/src/et.erl +++ b/lib/et/src/et.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2000-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -84,13 +84,15 @@ -module(et). -export([ - phone_home/4, report_event/4, - phone_home/5, report_event/5 + trace_me/4, phone_home/4, report_event/4, + trace_me/5, phone_home/5, report_event/5 ]). %%---------------------------------------------------------------------- %% Reports an event, such as a message %% +%% trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced +%% trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced %% report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced %% report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced %% phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced @@ -123,18 +125,28 @@ %% Other events (termed actions) may be undirected and only have one actor. %%---------------------------------------------------------------------- +trace_me(DetailLevel, FromTo, Label, Contents) + when is_integer(DetailLevel) -> + ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). + +trace_me(DetailLevel, _From, _To, _Label, _Contents) + when is_integer(DetailLevel) -> + hopefully_traced. + phone_home(DetailLevel, FromTo, Label, Contents) -> %% N.B External call - ?MODULE:report_event(DetailLevel, FromTo, FromTo, Label, Contents). + ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). phone_home(DetailLevel, From, To, Label, Contents) -> %% N.B External call - ?MODULE:report_event(DetailLevel, From, To, Label, Contents). + ?MODULE:trace_me(DetailLevel, From, To, Label, Contents). report_event(DetailLevel, FromTo, Label, Contents) -> %% N.B External call - ?MODULE:report_event(DetailLevel, FromTo, FromTo, Label, Contents). + ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). + +report_event(DetailLevel, From, To, Label, Contents) + when is_integer(DetailLevel) -> + %% N.B External call + ?MODULE:trace_me(DetailLevel, From, To, Label, Contents). -report_event(DetailLevel, _From, _To, _Label, _Contents) - when integer(DetailLevel) -> - hopefully_traced. diff --git a/lib/et/src/et_collector.erl b/lib/et/src/et_collector.erl index ea23c188f7..289537541d 100644 --- a/lib/et/src/et_collector.erl +++ b/lib/et/src/et_collector.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2000-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -36,6 +36,7 @@ iterate/3, iterate/5, + lookup/2, start_trace_client/3, start_trace_port/1, @@ -45,6 +46,7 @@ get_global_pid/0, %% get_table_handle/1, + get_table_size/1, change_pattern/2, make_key/2, @@ -59,9 +61,12 @@ -export([init/1,terminate/2, code_change/3, handle_call/3, handle_cast/2, handle_info/2]). +-include("et_internal.hrl"). -include("../include/et.hrl"). -record(state, {parent_pid, + auto_shutdown, % Optionally shutdown when the last subscriber dies + event_tab_size, event_tab, dict_tab, event_order, @@ -102,7 +107,7 @@ %% stored by the collector. By replacing the default collector filter %% with a customized dito it is possible to allow any trace data as %% input. The collector filter is a dictionary entry with the -%% predefined key {filter, collector} and the value is a fun of +%% predefined key {filter, all} and the value is a fun of %% arity 1. See et_selector:parse_event/2 for interface details, %% such as which erlang:trace/1 tuples that are accepted. %% @@ -126,7 +131,7 @@ %% option() = %% {parent_pid, pid()} | %% {event_order, event_order()} | -%% {dict_insert, {filter, collector}, collector_fun()} | +%% {dict_insert, {filter, all}, collector_fun()} | %% {dict_insert, {filter, event_filter_name()}, event_filter_fun()} | %% {dict_insert, {subscriber, pid()}, dict_val()} | %% {dict_insert, dict_key(), dict_val()} | @@ -159,19 +164,16 @@ start_link(Options) -> case parse_opt(Options, default_state(), [], []) of - {ok, S, Dict2, Clients} when S#state.trace_global == false -> - case gen_server:start_link(?MODULE, [S, Dict2], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid), - start_clients(Pid, Clients); - {ok,Pid} -> - start_clients(Pid, Clients); - {error, Reason} -> - {error, Reason} - end; - {ok, S, Dict2, Clients} when S#state.trace_global == true -> - case gen_server:start_link({global, ?MODULE}, ?MODULE, [S, Dict2], []) of - {ok, Pid} when S#state.parent_pid /= self() -> + {ok, S, Dict2, Clients} -> + Res = + case S#state.trace_global of + false -> + gen_server:start_link(?MODULE, [S, Dict2], []); + true -> + gen_server:start_link({global, ?MODULE}, ?MODULE, [S, Dict2], []) + end, + case Res of + {ok, Pid} when S#state.parent_pid =/= self() -> unlink(Pid), start_clients(Pid, Clients); {ok,Pid} -> @@ -185,6 +187,7 @@ start_link(Options) -> default_state() -> #state{parent_pid = self(), + auto_shutdown = false, event_order = trace_ts, subscribers = [], trace_global = false, @@ -196,28 +199,30 @@ default_state() -> parse_opt([], S, Dict, Clients) -> {Mod, Pattern} = et_selector:make_pattern(S#state.trace_pattern), Fun = fun(E) -> et_selector:parse_event(Mod, E) end, - Default = {dict_insert, {filter, collector}, Fun}, + Default = {dict_insert, {filter, ?DEFAULT_FILTER_NAME}, Fun}, {ok, S#state{trace_pattern = {Mod, Pattern}}, [Default | Dict], Clients}; parse_opt([H | T], S, Dict, Clients) -> case H of - {parent_pid, Parent} when Parent == undefined -> + {parent_pid, Parent} when Parent =:= undefined -> parse_opt(T, S#state{parent_pid = Parent}, Dict, Clients); - {parent_pid, Parent} when pid(Parent) -> + {parent_pid, Parent} when is_pid(Parent) -> parse_opt(T, S#state{parent_pid = Parent}, Dict, Clients); - {event_order, Order} when Order == trace_ts -> + {auto_shutdown, Bool} when Bool =:= true; Bool =:= false -> + parse_opt(T, S#state{auto_shutdown = Bool}, Dict, Clients); + {event_order, Order} when Order =:= trace_ts -> parse_opt(T, S#state{event_order = Order}, Dict, Clients); - {event_order, Order} when Order == event_ts -> + {event_order, Order} when Order =:= event_ts -> parse_opt(T, S#state{event_order = Order}, Dict, Clients); {dict_insert, {filter, Name}, Fun} -> if - atom(Name), function(Fun) -> + is_atom(Name), is_function(Fun) -> parse_opt(T, S, Dict ++ [H], Clients); true -> {error, {bad_option, H}} end; {dict_insert, {subscriber, Pid}, _Val} -> if - pid(Pid) -> + is_pid(Pid) -> parse_opt(T, S, Dict ++ [H], Clients); true -> {error, {bad_option, H}} @@ -228,17 +233,17 @@ parse_opt([H | T], S, Dict, Clients) -> parse_opt(T, S, Dict ++ [H], Clients); {trace_client, Client = {_, _}} -> parse_opt(T, S, Dict, Clients ++ [Client]); - {trace_global, Bool} when Bool == false -> + {trace_global, Bool} when Bool =:= false -> parse_opt(T, S#state{trace_global = Bool}, Dict, Clients); - {trace_global, Bool} when Bool == true -> + {trace_global, Bool} when Bool =:= true -> parse_opt(T, S#state{trace_global = Bool}, Dict, Clients); - {trace_pattern, {Mod, _} = Pattern} when atom(Mod) -> + {trace_pattern, {Mod, _} = Pattern} when is_atom(Mod) -> parse_opt(T, S#state{trace_pattern = Pattern}, Dict, Clients); {trace_pattern, undefined = Pattern} -> parse_opt(T, S#state{trace_pattern = Pattern}, Dict, Clients); - {trace_port, Port} when integer(Port) -> + {trace_port, Port} when is_integer(Port) -> parse_opt(T, S#state{trace_port = Port}, Dict, Clients); - {trace_max_queue, MaxQueue} when integer(MaxQueue) -> + {trace_max_queue, MaxQueue} when is_integer(MaxQueue) -> parse_opt(T, S#state{trace_port = MaxQueue}, Dict, Clients); Bad -> {error, {bad_option, Bad}} @@ -352,19 +357,19 @@ do_load_event_file(Fun, Fd, Cont, Acc, FileName, BadBytes) -> %% Returns: {ok, Continuation} | exit(Reason) %%---------------------------------------------------------------------- -report(CollectorPid, TraceOrEvent) when pid(CollectorPid) -> +report(CollectorPid, TraceOrEvent) when is_pid(CollectorPid) -> case get_table_handle(CollectorPid) of - {ok, TH} when record(TH, table_handle) -> + {ok, TH} when is_record(TH, table_handle) -> report(TH, TraceOrEvent); {error, Reason} -> exit(Reason) end; -report(TH, TraceOrEvent) when record(TH, table_handle) -> +report(TH, TraceOrEvent) when is_record(TH, table_handle) -> Fun = TH#table_handle.filter, case Fun(TraceOrEvent) of false -> {ok, TH}; - true when record(TraceOrEvent, event) -> + true when is_record(TraceOrEvent, event) -> Key = make_key(TH, TraceOrEvent), case catch ets:insert(TH#table_handle.event_tab, {Key, TraceOrEvent}) of true -> @@ -373,7 +378,7 @@ report(TH, TraceOrEvent) when record(TH, table_handle) -> %% Refresh the report handle and try again report(TH#table_handle.collector_pid, TraceOrEvent) end; - {true, Event} when record(Event, event) -> + {true, Event} when is_record(Event, event) -> Key = make_key(TH, Event), case catch ets:insert(TH#table_handle.event_tab, {Key, Event}) of true -> @@ -401,7 +406,7 @@ report(TH, TraceOrEvent) when record(TH, table_handle) -> report(TH#table_handle.collector_pid, TraceOrEvent) end end; -report(TH, end_of_trace) when record(TH, table_handle) -> +report(TH, end_of_trace) when is_record(TH, table_handle) -> {ok, TH}; report(_, Bad) -> exit({bad_event, Bad}). @@ -410,7 +415,7 @@ report_event(CollectorPid, DetailLevel, FromTo, Label, Contents) -> report_event(CollectorPid, DetailLevel, FromTo, FromTo, Label, Contents). report_event(CollectorPid, DetailLevel, From, To, Label, Contents) - when integer(DetailLevel), DetailLevel >= 0, DetailLevel =< 100, list(Contents) -> + when is_integer(DetailLevel), DetailLevel >= 0, DetailLevel =< 100 -> TS= erlang:now(), E = #event{detail_level = DetailLevel, trace_ts = TS, @@ -431,31 +436,37 @@ report_event(CollectorPid, DetailLevel, From, To, Label, Contents) %% Key = record(event_ts) | record(trace_ts) %%---------------------------------------------------------------------- -make_key(TH, Stuff) when record(TH, table_handle) -> +make_key(TH, Stuff) when is_record(TH, table_handle) -> make_key(TH#table_handle.event_order, Stuff); make_key(trace_ts, Stuff) -> if - record(Stuff, event) -> + is_record(Stuff, event) -> #event{trace_ts = R, event_ts = P} = Stuff, #trace_ts{trace_ts = R, event_ts = P}; - record(Stuff, trace_ts) -> + is_record(Stuff, trace_ts) -> Stuff; - record(Stuff, event_ts) -> + is_record(Stuff, event_ts) -> #event_ts{trace_ts = R, event_ts = P} = Stuff, #trace_ts{trace_ts = R, event_ts = P} end; make_key(event_ts, Stuff) -> if - record(Stuff, event) -> + is_record(Stuff, event) -> #event{trace_ts = R, event_ts = P} = Stuff, #event_ts{trace_ts = R, event_ts = P}; - record(Stuff, event_ts) -> + is_record(Stuff, event_ts) -> Stuff; - record(Stuff, trace_ts) -> + is_record(Stuff, trace_ts) -> #trace_ts{trace_ts = R, event_ts = P} = Stuff, #event_ts{trace_ts = R, event_ts = P} end. +%%---------------------------------------------------------------------- +%%---------------------------------------------------------------------- + +get_table_size(CollectorPid) when is_pid(CollectorPid) -> + call(CollectorPid, get_table_size). + %%---------------------------------------------------------------------- %% get_table_handle(CollectorPid) -> Handle %% @@ -465,7 +476,7 @@ make_key(event_ts, Stuff) -> %% Handle = record(table_handle) %%---------------------------------------------------------------------- -get_table_handle(CollectorPid) when pid(CollectorPid) -> +get_table_handle(CollectorPid) when is_pid(CollectorPid) -> call(CollectorPid, get_table_handle). %%---------------------------------------------------------------------- @@ -480,7 +491,7 @@ get_table_handle(CollectorPid) when pid(CollectorPid) -> get_global_pid() -> case global:whereis_name(?MODULE) of - CollectorPid when pid(CollectorPid) -> + CollectorPid when is_pid(CollectorPid) -> CollectorPid; undefined -> exit(global_collector_not_started) @@ -505,7 +516,7 @@ change_pattern(CollectorPid, RawPattern) -> call(CollectorPid, {change_pattern, Pattern}). %%---------------------------------------------------------------------- -%% dict_insert(CollectorPid, {filter, collector}, FilterFun) -> ok +%% dict_insert(CollectorPid, {filter, all}, FilterFun) -> ok %% dict_insert(CollectorPid, {subscriber, SubscriberPid}, Void) -> ok %% dict_insert(CollectorPid, Key, Val) -> ok %% @@ -532,14 +543,14 @@ change_pattern(CollectorPid, RawPattern) -> dict_insert(CollectorPid, Key = {filter, Name}, Fun) -> if - atom(Name), function(Fun) -> + is_atom(Name), is_function(Fun) -> call(CollectorPid, {dict_insert, Key, Fun}); true -> exit({badarg, Key}) end; dict_insert(CollectorPid, Key = {subscriber, Pid}, Val) -> if - pid(Pid) -> + is_pid(Pid) -> call(CollectorPid, {dict_insert, Key, Val}); true -> exit({badarg, Key}) @@ -626,9 +637,9 @@ multicast(CollectorPid, Msg) -> %% Pid = dbg_trace_client_pid() %%---------------------------------------------------------------------- -start_trace_client(CollectorPid, Type, FileName) when Type == event_file -> +start_trace_client(CollectorPid, Type, FileName) when Type =:= event_file -> load_event_file(CollectorPid, FileName); -start_trace_client(CollectorPid, Type, FileName) when Type == file -> +start_trace_client(CollectorPid, Type, FileName) when Type =:= file -> WaitFor = {make_ref(), end_of_trace}, EventFun = fun(E, {ReplyTo, {ok, TH}}) -> {ReplyTo, report(TH, E)} end, EndFun = fun({ReplyTo, {ok, _TH}}) -> ReplyTo ! WaitFor, ReplyTo end, @@ -658,9 +669,9 @@ start_trace_client(CollectorPid, Type, Parameters) -> {trace_client_pid, Pid}. trace_spec_wrapper(EventFun, EndFun, EventInitialAcc) - when function(EventFun), function(EndFun) -> + when is_function(EventFun), is_function(EndFun) -> {fun(Trace, Acc) -> - case Trace == end_of_trace of + case Trace =:= end_of_trace of true -> EndFun(Acc); false -> EventFun(Trace, Acc) end @@ -702,24 +713,24 @@ iterate(Handle, Prev, Limit) -> %% Acc = NewAcc = term() %%---------------------------------------------------------------------- -iterate(_, _, Limit, _, Acc) when Limit == 0 -> +iterate(_, _, Limit, _, Acc) when Limit =:= 0 -> Acc; -iterate(CollectorPid, Prev, Limit, Fun, Acc) when pid(CollectorPid) -> +iterate(CollectorPid, Prev, Limit, Fun, Acc) when is_pid(CollectorPid) -> case get_table_handle(CollectorPid) of - {ok, TH} when record(TH, table_handle) -> + {ok, TH} when is_record(TH, table_handle) -> iterate(TH, Prev, Limit, Fun, Acc); {error, Reason} -> exit(Reason) end; -iterate(TH, Prev, Limit, Fun, Acc) when record(TH, table_handle) -> +iterate(TH, Prev, Limit, Fun, Acc) when is_record(TH, table_handle) -> if - Limit == infinity -> + Limit =:= infinity -> next_iterate(TH, Prev, Limit, Fun, Acc); - integer(Limit), Limit > 0 -> + is_integer(Limit), Limit > 0 -> next_iterate(TH, Prev, Limit, Fun, Acc); - Limit == '-infinity' -> + Limit =:= '-infinity' -> prev_iterate(TH, Prev, Limit, Fun, Acc); - integer(Limit), Limit < 0 -> + is_integer(Limit), Limit < 0 -> prev_iterate(TH, Prev, Limit, Fun, Acc) end. @@ -793,7 +804,7 @@ prev_iterate(TH, Prev, Limit, Fun, Acc) -> lookup_and_apply(TH, Prev, Next, Limit, 1, Fun, Acc) end. -lookup_and_apply(TH, _Prev, Next, Limit, Incr, Fun, _Acc) when Fun == undefined -> +lookup_and_apply(TH, _Prev, Next, Limit, Incr, Fun, _Acc) when Fun =:= undefined -> Limit2 = incr(Limit, Incr), iterate(TH, Next, Limit2, Fun, Next); lookup_and_apply(TH, Prev, Next, Limit, Incr, Fun, Acc) -> @@ -801,17 +812,33 @@ lookup_and_apply(TH, Prev, Next, Limit, Incr, Fun, Acc) -> case catch ets:lookup_element(Tab, Next, 2) of {'EXIT', _} -> iterate(TH#table_handle.collector_pid, Prev, Limit, Fun, Acc); - E when record(E, event) -> + E when is_record(E, event) -> Acc2 = Fun(E, Acc), Limit2 = incr(Limit, Incr), iterate(TH, Next, Limit2, Fun, Acc2) end. +lookup(CollectorPid, Key) when is_pid(CollectorPid) -> + case get_table_handle(CollectorPid) of + {ok, TH} when is_record(TH, table_handle) -> + lookup(TH, Key); + {error, Reason} -> + {error, Reason} + end; +lookup(TH, Key) when is_record(TH, table_handle) -> + Tab = TH#table_handle.event_tab, + case catch ets:lookup_element(Tab, Key, 2) of + {'EXIT', _} -> + {error, enoent}; + E when is_record(E, event) -> + {ok, E} + end. + incr(Val, Incr) -> if - Val == infinity -> Val; - Val == '-infinity' -> Val; - integer(Val) -> Val + Incr + Val =:= infinity -> Val; + Val =:= '-infinity' -> Val; + is_integer(Val) -> Val + Incr end. %%---------------------------------------------------------------------- @@ -824,13 +851,18 @@ incr(Val, Incr) -> %% table_handle() = record(table_handle) %%---------------------------------------------------------------------- -clear_table(CollectorPid) when pid(CollectorPid) -> +clear_table(CollectorPid) when is_pid(CollectorPid) -> call(CollectorPid, clear_table); -clear_table(TH) when record(TH, table_handle) -> +clear_table(TH) when is_record(TH, table_handle) -> clear_table(TH#table_handle.collector_pid). call(CollectorPid, Request) -> - gen_server:call(CollectorPid, Request, infinity). + try + gen_server:call(CollectorPid, Request, infinity) + catch + exit:{noproc,_} -> + {error, no_collector} + end. %%%---------------------------------------------------------------------- %%% Callback functions from gen_server @@ -849,7 +881,7 @@ init([InitialS, Dict]) -> case InitialS#state.parent_pid of undefined -> ignore; - Pid when pid(Pid) -> + Pid when is_pid(Pid) -> link(Pid) end, Funs = [fun init_tables/1, @@ -860,7 +892,7 @@ init([InitialS, Dict]) -> init_tables(S) -> EventTab = ets:new(et_events, [ordered_set, {keypos, 1}, public]), DictTab = ets:new(et_dict, [ordered_set, {keypos, 1}, public]), - S#state{event_tab = EventTab, dict_tab = DictTab}. + S#state{event_tab = EventTab, dict_tab = DictTab, event_tab_size = 0}. init_global(S) -> case S#state.trace_global of @@ -889,44 +921,53 @@ init_global(S) -> handle_call({multicast, Msg}, _From, S) -> do_multicast(S#state.subscribers, Msg), - {reply, ok, S}; + reply(ok, S); handle_call(Msg = {dict_insert, _Key, _Val}, _From, S) -> S2 = do_dict_insert(Msg, S), - {reply, ok, S2}; + reply(ok, S2); handle_call(Msg = {dict_delete, _Key}, _From, S) -> - S2 = do_dict_delete(Msg, S), - {reply, ok, S2}; - + try + S2 = do_dict_delete(Msg, S), + reply(ok, S2) + catch + throw:{stop, R} -> + opt_unlink(S#state.parent_pid), + {stop, R, S} + end; handle_call({dict_lookup, Key}, _From, S) -> Reply = ets:lookup(S#state.dict_tab, Key), - {reply, Reply, S}; + reply(Reply, S); handle_call({dict_match, Pattern}, _From, S) -> case catch ets:match_object(S#state.dict_tab, Pattern) of {'EXIT', _Reason} -> - {reply, [], S}; + reply([], S); Matching -> - {reply, Matching, S} + reply(Matching, S) end; handle_call(get_table_handle, _From, S) -> - [{_, TableFilter}] = ets:lookup(S#state.dict_tab, {filter, collector}), + [{_, TableFilter}] = ets:lookup(S#state.dict_tab, {filter, ?DEFAULT_FILTER_NAME}), TH = #table_handle{collector_pid = self(), event_tab = S#state.event_tab, event_order = S#state.event_order, filter = TableFilter}, - {reply, {ok, TH}, S}; + reply({ok, TH}, S); + +handle_call(get_table_size, _From, S) -> + Size = ets:info(S#state.event_tab, size), + reply({ok, Size}, S); handle_call(close, _From, S) -> case S#state.file of undefined -> - {reply, {error, file_not_open}, S}; + reply({error, file_not_open}, S); F -> Reply = disk_log:close(F#file.desc), S2 = S#state{file = undefined}, - {reply, Reply, S2} + reply(Reply, S2) end; handle_call({save_event_file, FileName, Options}, _From, S) -> Default = #file{name = FileName, @@ -934,7 +975,7 @@ handle_call({save_event_file, FileName, Options}, _From, S) -> file_opt = write, table_opt = keep}, case parse_file_options(Default, Options) of - {ok, F} when record(F, file) -> + {ok, F} when is_record(F, file) -> case file_open(F) of {ok, Fd} -> F2 = F#file{desc = Fd}, @@ -966,16 +1007,16 @@ handle_call({save_event_file, FileName, Options}, _From, S) -> end, case F2#file.table_opt of keep -> - {reply, Reply2, S3}; + reply(Reply2, S3); clear -> S4 = do_clear_table(S3), - {reply, Reply2, S4} + reply(Reply2, S4) end; {error, Reason} -> - {reply, {error, {file_open, Reason}}, S} + reply({error, {file_open, Reason}}, S) end; {error, Reason} -> - {reply, {error, Reason}, S} + reply({error, Reason}, S) end; handle_call({change_pattern, Pattern}, _From, S) -> @@ -983,11 +1024,11 @@ handle_call({change_pattern, Pattern}, _From, S) -> rpc:multicall(Ns, et_selector, change_pattern, [Pattern]), Reply = {old_pattern, S#state.trace_pattern}, S2 = S#state{trace_pattern = Pattern}, - {reply, Reply, S2}; + reply(Reply, S2); handle_call(clear_table, _From, S) -> S2 = do_clear_table(S), - {reply, ok, S2}; + reply(ok, S2); handle_call(stop, _From, S) -> do_multicast(S#state.subscribers, close), @@ -999,7 +1040,7 @@ handle_call(stop, _From, S) -> handle_call(Request, From, S) -> ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", [?MODULE, self(), Request, From, S]), - {reply, {error, {bad_request, Request}}, S}. + reply({error, {bad_request, Request}}, S). %%---------------------------------------------------------------------- %% Func: handle_cast/2 @@ -1011,7 +1052,7 @@ handle_call(Request, From, S) -> handle_cast(Msg, S) -> ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", [?MODULE, self(), Msg, S]), - {noreply, S}. + noreply(S). %%---------------------------------------------------------------------- %% Func: handle_info/2 @@ -1020,54 +1061,67 @@ handle_cast(Msg, S) -> %% {stop, Reason, State} (terminate/2 is called) %%---------------------------------------------------------------------- +handle_info(timeout, S) -> + S2 = check_size(S), + noreply(S2); handle_info({nodeup, Node}, S) -> Port = S#state.trace_port, MaxQueue = S#state.trace_max_queue, case rpc:call(Node, ?MODULE, start_trace_port, [{Port, MaxQueue}]) of {ok, _} -> - listen_on_trace_port(Node, Port, S); - {error, Reason} when Reason == already_started-> + S2 = listen_on_trace_port(Node, Port, S), + noreply(S2); + {error, Reason} when Reason =:= already_started-> ok = error_logger:format("~p(~p): producer ignored(~p:~p):~n ~p~n", [?MODULE, self(), Node, Port, Reason]), S2 = S#state{trace_port = Port + 1}, - {noreply, S2}; + noreply(S2); {badrpc, Reason} -> ok = error_logger:format("~p(~p): producer ignored(~p:~p):~n ~p~n", [?MODULE, self(), Node, Port, Reason]), S2 = S#state{trace_port = Port + 1}, - {noreply, S2}; + noreply(S2); {error, Reason} -> self() ! {nodeup, Node}, ok = error_logger:format("~p(~p): producer retry(~p:~p):~n ~p~n", [?MODULE, self(), Node, Port, Reason]), S2 = S#state{trace_port = Port + 1}, - {noreply, S2} + noreply(S2) end; handle_info({nodedown, Node}, S) -> - {noreply, S#state{trace_nodes = S#state.trace_nodes -- [Node]}}; + noreply(S#state{trace_nodes = S#state.trace_nodes -- [Node]}); handle_info({register_trace_client, Pid}, S) -> link(Pid), - {noreply, S}; + noreply(S); -handle_info({'EXIT', Pid, Reason}, S) when Pid == S#state.parent_pid -> +handle_info({'EXIT', Pid, Reason}, S) when Pid =:= S#state.parent_pid -> {stop, Reason, S}; -handle_info(Info = {'EXIT', Pid, _Reason}, S) -> - OldSubscribers = S#state.subscribers, +handle_info(Info = {'EXIT', Pid, Reason}, S) -> + OldSubscribers = S#state.subscribers, case lists:member(Pid, OldSubscribers) of - true -> - S2 = do_dict_delete({dict_delete, {subscriber, Pid}}, S), - {noreply, S2}; + true when Reason =:= shutdown -> + try + S2 = do_dict_delete({dict_delete, {subscriber, Pid}}, S), + noreply(S2) + catch + throw:{stop, R} -> + opt_unlink(S#state.parent_pid), + {stop, R, S} + end; + true -> + opt_unlink(S#state.parent_pid), + {stop, Reason, S}; false -> ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", [?MODULE, self(), Info, S]), - {noreply, S} + noreply(S) end; handle_info(Info, S) -> ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", [?MODULE, self(), Info, S]), - {noreply, S}. + noreply(S). listen_on_trace_port(Node, Port, S) -> [_Name, Host] = string:tokens(atom_to_list(Node), [$@]), @@ -1075,20 +1129,17 @@ listen_on_trace_port(Node, Port, S) -> {trace_client_pid, RemotePid} -> rpc:call(Node, et_selector, change_pattern, [S#state.trace_pattern]), link(RemotePid), - S2 = S#state{trace_nodes = [Node | S#state.trace_nodes], - trace_port = Port + 1}, - {noreply, S2}; - {'EXIT', Reason} when Reason == already_started-> + S#state{trace_nodes = [Node | S#state.trace_nodes], + trace_port = Port + 1}; + {'EXIT', Reason} when Reason =:= already_started-> ok = error_logger:format("~p(~p): consumer ignored(~p:~p): ~p~n", [?MODULE, self(), Node, Port, Reason]), - S2 = S#state{trace_port = Port + 1}, - {noreply, S2}; + S#state{trace_port = Port + 1}; {'EXIT', Reason} -> self() ! {nodeup, Node}, ok = error_logger:format("~p(~p): consumer retry(~p:~p):~n ~p~n", [?MODULE, self(), Node, Port, Reason]), - S2 = S#state{trace_port = Port + 1}, - {noreply, S2} + S#state{trace_port = Port + 1} end. %%---------------------------------------------------------------------- @@ -1120,7 +1171,7 @@ do_clear_table(S) -> NewTab = ets:new(et_events, [ordered_set, {keypos, 1}, public]), S#state{event_tab = NewTab}. -do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when pid(Pid) -> +do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when is_pid(Pid) -> OldSubscribers = S#state.subscribers, NewSubscribers = case lists:member(Pid, OldSubscribers) of @@ -1133,6 +1184,8 @@ do_dict_insert(Msg = {dict_insert, Key = {subscriber, Pid}, Val}, S) when pid(Pi [Pid | OldSubscribers] end, do_multicast(NewSubscribers, Msg), + Size = ets:info(S#state.event_tab, size), + do_multicast(NewSubscribers, {more_events, Size}), ets:insert(S#state.dict_tab, {Key, Val}), S#state{subscribers = NewSubscribers}; do_dict_insert(Msg = {dict_insert, Key, Val}, S) -> @@ -1147,11 +1200,18 @@ do_dict_delete(Msg = {dict_delete, Key = {subscriber, Pid}}, S) -> case lists:member(Pid, OldSubscribers) of true -> unlink(Pid), - S#state{subscribers = OldSubscribers -- [Pid]}; + S2 = S#state{subscribers = OldSubscribers -- [Pid]}, + if + S2#state.auto_shutdown, + S2#state.subscribers =:= [] -> + throw({stop, shutdown}); + true -> + S2 + end; false -> S end; -do_dict_delete({dict_delete, {filter, collector}}, S) -> +do_dict_delete({dict_delete, {filter, ?DEFAULT_FILTER_NAME}}, S) -> S; do_dict_delete(Msg = {dict_delete, Key}, S) -> do_multicast(S#state.subscribers, Msg), @@ -1202,3 +1262,33 @@ do_multicast([Pid | Pids], Msg) -> do_multicast(Pids, Msg); do_multicast([], _Msg) -> ok. + +opt_unlink(Pid) -> + if + Pid =:= undefined -> + ignore; + true -> + unlink(Pid) + end. + +reply(Reply, #state{subscribers = []} = S) -> + {reply, Reply, S}; +reply(Reply, S) -> + {reply, Reply, S, 500}. + +noreply(#state{subscribers = []} = S) -> + {noreply, S}; +noreply(S) -> + {noreply, S, 500}. + +check_size(S) -> + Size = ets:info(S#state.event_tab, size), + if + Size =:= S#state.event_tab_size -> + S; + true -> + %% Tell the subscribers that more events are available + Msg = {more_events, Size}, + do_multicast(S#state.subscribers, Msg), + S#state{event_tab_size = Size} + end. diff --git a/lib/et/src/et_contents_viewer.erl b/lib/et/src/et_contents_viewer.erl deleted file mode 100644 index 29ca93ca64..0000000000 --- a/lib/et/src/et_contents_viewer.erl +++ /dev/null @@ -1,591 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2009. All Rights Reserved. -%% -%% The contents of this file are subject to the Erlang Public License, -%% Version 1.1, (the "License"); you may not use this file except in -%% compliance with the License. You should have received a copy of the -%% Erlang Public License along with this software. If not, it can be -%% retrieved online at http://www.erlang.org/. -%% -%% Software distributed under the License is distributed on an "AS IS" -%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%% the License for the specific language governing rights and limitations -%% under the License. -%% -%% %CopyrightEnd% -%% -%%---------------------------------------------------------------------- -%% Purpose: Displays details of a trace event -%%---------------------------------------------------------------------- - --module(et_contents_viewer). - --behaviour(gen_server). - -%% External exports --export([start_link/1, - stop/1]). - -%% gen_server callbacks --export([init/1, terminate/2, code_change/3, - handle_call/3, handle_cast/2, handle_info/2]). - --include("../include/et.hrl"). --include("et_internal.hrl"). - --record(state, {parent_pid, % Pid of parent process - viewer_pid, % Pid of viewer process - event_order, % Field to be used as primary key - event, % The original event - filtered_event, % Event processed by active filter - active_filter, % Name of the active filter - filters, % List of possible filters - win, % GUI: Window object - packer, % GUI: Packer object - width, % GUI: Window width - height}). % GUI: Window height - -%%%---------------------------------------------------------------------- -%%% Client side -%%%---------------------------------------------------------------------- - -%%---------------------------------------------------------------------- -%% start_link(Options) -> {ok, ContentsPid} | {error, Reason} -%% -%% Start an viewer for the event contents as window in GS -%% -%% Options = [option()] -%% -%% option() = -%% -%% {parent_pid, pid()} | % Pid of parent process -%% {viewer_pid, pid()} | % Pid of viewer process -%% {event_order, event_order()} | % Field to be used as primary key -%% {active_filter, atom()} | % Name of the active filter -%% {filter, atom(), fun()} % A named filter fun -%% -%% event_order() = 'trace_ts' | 'event_ts' -%% ContentsPid = pid() -%% Reason = term() -%%---------------------------------------------------------------------- - -start_link(Options) -> - case parse_opt(Options, default_state()) of - {ok, S} -> - case gen_server:start_link(?MODULE, [S], []) of - {ok, ContentsPid} when S#state.parent_pid /= self() -> - unlink(ContentsPid), - {ok, ContentsPid}; - Other -> - Other - end; - {error, Reason} -> - {error, Reason} - end. - -default_state() -> - #state{parent_pid = self(), - viewer_pid = undefined, - active_filter = collector, - filters = [#filter{name = collector, function = fun(E) -> E end}], - width = 600, - height = 300}. - -parse_opt([], S) -> - Name = S#state.active_filter, - Filters = S#state.filters, - if - S#state.event == undefined -> - {error, {badarg, no_event}}; - atom(Name) -> - case lists:keysearch(Name, #filter.name, Filters) of - {value, F} when record(F, filter) -> - {ok, S#state{active_filter = Name}}; - false -> - {error, {badarg, {no_such_filter, Name, Filters}}} - end - end; -parse_opt([H | T], S) -> - case H of - {parent_pid, ParentPid} when pid(ParentPid) -> - parse_opt(T, S#state{parent_pid = ParentPid}); - {viewer_pid, ViewerPid} when pid(ViewerPid) -> - parse_opt(T, S#state{viewer_pid = ViewerPid}); - {event_order, trace_ts} -> - parse_opt(T, S#state{event_order = trace_ts}); - {event_order, event_ts} -> - parse_opt(T, S#state{event_order = event_ts}); - {event, Event} when record(Event, event) -> - parse_opt(T, S#state{event = Event}); - {active_filter, Name} when atom(Name) -> - parse_opt(T, S#state{active_filter = Name}); - F when record(F, filter), - atom(F#filter.name), - function(F#filter.function) -> - Filters = lists:keydelete(F#filter.name, #filter.name, S#state.filters), - Filters2 = lists:keysort(#filter.name, [F | Filters]), - parse_opt(T, S#state{filters = Filters2}); - {width, Width} when integer(Width), Width > 0 -> - parse_opt(T, S#state{width = Width}); - {height, Height} when integer(Height), Height > 0 -> - parse_opt(T, S#state{height = Height}); - Bad -> - {error, {bad_option, Bad}} - end; -parse_opt(BadList, _S) -> - {error, {bad_option_list, BadList}}. - -%%---------------------------------------------------------------------- -%% stop(ContentsPid) -> ok -%% -%% Stops a contents viewer process -%% -%% ContentsPid = pid() -%%---------------------------------------------------------------------- - -stop(ContentsPid) -> - unlink(ContentsPid), - call(ContentsPid, stop). - -call(ContentsPid, Request) -> - gen_server:call(ContentsPid, Request, infinity). - -%%%---------------------------------------------------------------------- -%%% Callback functions from gen_server -%%%---------------------------------------------------------------------- - -%%---------------------------------------------------------------------- -%% Func: init/1 -%% Returns: {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} -%%---------------------------------------------------------------------- - -init([S]) when record(S, state) -> - process_flag(trap_exit, true), - S2 = create_window(S), - {ok, S2}. - -%%---------------------------------------------------------------------- -%% Func: handle_call/3 -%% Returns: {reply, Reply, State} | -%% {reply, Reply, State, Timeout} | -%% {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, Reply, State} | (terminate/2 is called) -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_call(stop, _From, S) -> - unlink(S#state.parent_pid), - {stop, shutdown, ok, S}; -handle_call(Request, From, S) -> - ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", - [?MODULE, self(), Request, From, S]), - Reply = {error, {bad_request, Request}}, - {reply, Reply, S}. - -%%---------------------------------------------------------------------- -%% Func: handle_cast/2 -%% Returns: {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_cast(Msg, S) -> - ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", - [?MODULE, self(), Msg, S]), - {noreply, S}. - -%%---------------------------------------------------------------------- -%% Func: handle_info/2 -%% Returns: {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_info({gs, Button, click, Data, _Other}, S) -> - case Button of - close -> - gs:destroy(S#state.win), - {stop, normal, S}; - save -> - Event = S#state.event, - Bin = list_to_binary(event_to_string(Event, S#state.event_order)), - TimeStamp = - case S#state.event_order of - trace_ts -> Event#event.trace_ts; - event_ts -> Event#event.event_ts - end, - FileName = ["et_contents_viewer_", now_to_string(TimeStamp), ".save"], - file:write_file(lists:flatten(FileName), Bin), - {noreply, S}; - _PopupMenuItem when record(Data, filter) -> - F = Data, - ChildState= S#state{active_filter = F#filter.name}, - case gen_server:start_link(?MODULE, [ChildState], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid), - {noreply, S}; - _ -> - {noreply, S} - end; - {hide, Actors} -> - send_viewer_event(S, {delete_actors, Actors}), - {noreply, S}; - {show, Actors} -> - send_viewer_event(S, {insert_actors, Actors}), - {noreply, S}; - {mode, Mode} -> - send_viewer_event(S, {mode, Mode}), - {noreply, S}; - Nyi -> - ok = error_logger:format("~p: click ~p ignored (nyi)~n", - [?MODULE, Nyi]), - {noreply, S} - end; -handle_info({gs, _Obj, destroy,_, _}, S) -> - unlink(S#state.parent_pid), - gs:destroy(S#state.win), - {stop, normal, S}; -handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]}, S) -> - case KeySym of - 'c' -> - gs:destroy(S#state.win), - {stop, normal, S}; - - 'f' -> - E = S#state.filtered_event, - From = E#event.from, - send_viewer_event(S, {delete_actors, [From]}), - {noreply, S}; - 't' -> - E = S#state.filtered_event, - To = E#event.to, - send_viewer_event(S, {delete_actors, [To]}), - {noreply, S}; - 'b' -> - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - send_viewer_event(S, {delete_actors, [From, To]}), - {noreply, S}; - - 'F' -> - E = S#state.filtered_event, - From = E#event.from, - send_viewer_event(S, {insert_actors, [From]}), - {noreply, S}; - 'T' -> - E = S#state.filtered_event, - To = E#event.to, - send_viewer_event(S, {insert_actors, [To]}), - {noreply, S}; - 'B' -> - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - send_viewer_event(S, {insert_actors, [From, To]}), - {noreply, S}; - - 's' -> - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - First = et_collector:make_key(S#state.event_order, E), - Mode = {search_actors, forward, First, [From, To]}, - send_viewer_event(S, {mode, Mode}), - {noreply, S}; - 'r' -> - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - First = et_collector:make_key(S#state.event_order, E), - Mode = {search_actors, reverse, First, [From, To]}, - send_viewer_event(S, {mode, Mode}), - {noreply, S}; - 'a' -> - send_viewer_event(S, {mode, all}), - {noreply, S}; - - 0 -> - case lists:keysearch(collector, #filter.name, S#state.filters) of - {value, F} when record(F, filter) -> - ChildState= S#state{active_filter = F#filter.name}, - case gen_server:start_link(?MODULE, [ChildState], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid); - _ -> - ignore - end; - false -> - ignore - end, - {noreply, S}; - Int when integer(Int), Int > 0, Int =< 9 -> - case catch lists:nth(Int, S#state.filters) of - F when record(F, filter) -> - ChildState= S#state{active_filter = F#filter.name}, - case gen_server:start_link(?MODULE, [ChildState], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid); - _ -> - ignore - end; - {'EXIT', _} -> - ignore - end, - {noreply, S}; - - 'Shift_L' -> - {noreply, S}; - 'Shift_R' -> - {noreply, S}; - 'Caps_Lock' -> - {noreply, S}; - _ -> - io:format("~p: ignored: ~p~n", [?MODULE, KeySym]), - {noreply, S} - end; -handle_info({gs, _Obj, configure, [], [W, H | _]}, S) -> - gs:config(S#state.packer, [{width, W},{height, H}]), - S2 = S#state{width = W, height = H}, - {noreply, S2}; -handle_info({'EXIT', Pid, Reason}, S) -> - if - Pid == S#state.parent_pid -> - unlink(Pid), - {stop, Reason, S}; - true -> - {noreply, S} - end; -handle_info(Info, S) -> - ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", - [?MODULE, self(), Info, S]), - {noreply, S}. - -%%---------------------------------------------------------------------- -%% Func: terminate/2 -%% Purpose: Shutdown the server -%% Returns: any (ignored by gen_server) -%%---------------------------------------------------------------------- - -terminate(_Reason, _S) -> - ignore. - -%%---------------------------------------------------------------------- -%% Func: code_change/3 -%% Purpose: Convert process state when code is changed -%% Returns: {ok, NewState} -%%---------------------------------------------------------------------- - -code_change(_OldVsn, S, _Extra) -> - {ok, S}. - -%%%---------------------------------------------------------------------- -%%% Handle graphics -%%%---------------------------------------------------------------------- - -create_window(S) -> - H = S#state.height, - W = S#state.width, - Name = S#state.active_filter, - Title = lists:concat([?MODULE, " (filter: ", Name, ")"]), - WinOpt = [{title, Title}, {configure, true}, - {width, W}, {height, H}], - GS = gs:start(), - Win = gs:window(GS, WinOpt), - Bar = gs:menubar(Win, []), - create_file_menu(Bar), - PackerOpt = [{packer_x, [{stretch, 1}]}, - {packer_y, [{stretch, 1}, {fixed, 25}]}, - {x, 0}, {y, 25}], - Packer = gs:frame(Win, PackerOpt), - EditorOpt = [{pack_xy, {1, 1}}, {vscroll, right}, {hscroll, bottom}, - {wrap, none}, - {bg, lightblue}, {font, {courier, 12}}], - Editor = gs:editor(Packer, EditorOpt), - FilteredEvent = config_editor(Editor, S), - S2 = S#state{win = Win, packer = Packer, filtered_event = FilteredEvent}, - create_hide_menu(Bar, S2), - create_search_menu(Bar, S2), - create_filter_menu(Bar, S#state.filters), - gs:config(Packer, [{width, W}, {height, H}]), - gs:config(Win, [{map,true}, {keypress, true}]), - S2. - -create_file_menu(Bar) -> - Button = gs:menubutton(Bar, [{label, {text, "File"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(close, Menu, [{label, {text,"Close (c)"}}]), - gs:menuitem(save, Menu, [{label, {text,"Save"}}]). - -create_filter_menu(Bar, Filters) -> - Button = gs:menubutton(Bar, [{label, {text, "Filters"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(Menu, [{label, {text, "Select Filter"}}, {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - Item = fun(F, N) when F#filter.name == collector-> - Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]), - gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), - N + 1; - (F, N) -> - Name = F#filter.name, - Label = lists:concat([pad_string(Name, 20), "(", N, ")"]), - gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), - N + 1 - end, - Filters2 = lists:keysort(#filter.name, Filters), - lists:foldl(Item, 1, Filters2), - Menu. - -create_hide_menu(Bar, S) -> - Button = gs:menubutton(Bar, [{label, {text, "Hide"}}]), - Menu = gs:menu(Button, []), - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - if - S#state.viewer_pid == undefined -> - ignore; - From == To -> - gs:menuitem(Menu, [{label, {text, "Hide actor in Viewer "}}, {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem({hide, [From]}, Menu, [{label, {text,"From=To (f|t|b)"}}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "Show actor in Viewer "}}, {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem({show, [From]}, Menu, [{label, {text,"From=To (F|T|B)"}}]); - true -> - gs:menuitem(Menu, [{label, {text, "Hide actor in Viewer "}}, {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem({hide, [From]}, Menu, [{label, {text,"From (f)"}}]), - gs:menuitem({hide, [To]}, Menu, [{label, {text,"To (t)"}}]), - gs:menuitem({hide, [From, To]}, Menu, [{label, {text,"Both (b)"}}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "Show actor in Viewer "}}, {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem({show, [From]}, Menu, [{label, {text,"From (F)"}}]), - gs:menuitem({show, [To]}, Menu, [{label, {text,"To (T)"}}]), - gs:menuitem({show, [From, To]}, Menu, [{label, {text,"Both (B)"}}]) - end. - -create_search_menu(Bar, S) -> - Button = gs:menubutton(Bar, [{label, {text, "Search"}}]), - Menu = gs:menu(Button, []), - E = S#state.filtered_event, - From = E#event.from, - To = E#event.to, - gs:menuitem(Menu, [{label, {text, "Search in Viewer "}}, - {bg, lightblue}, {enable, false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - if - S#state.viewer_pid == undefined -> - S; - From == To -> - Key = et_collector:make_key(S#state.event_order, E), - ModeS = {search_actors, forward, Key, [From]}, - ModeR = {search_actors, reverse, Key, [From]}, - gs:menuitem({mode, ModeS}, Menu, [{label, {text,"Forward from this event (s)"}}]), - gs:menuitem({mode, ModeR}, Menu, [{label, {text,"Reverse from this event (r)"}}]); - true -> - Key = et_collector:make_key(S#state.event_order, E), - ModeS = {search_actors, forward, Key, [From, To]}, - ModeR = {search_actors, reverse, Key, [From, To]}, - gs:menuitem({mode, ModeS}, Menu, [{label, {text,"Forward from this event (s)"}}]), - gs:menuitem({mode, ModeR}, Menu, [{label, {text,"Reverse from this event (r)"}}]) - end, - gs:menuitem({mode, all}, Menu, [{label, {text,"Abort search. Display all (a)"}}]). - -config_editor(Editor, S) -> - Event = S#state.event, - Name = S#state.active_filter, - {value, F} = lists:keysearch(Name, #filter.name, S#state.filters), - FilterFun = F#filter.function, - case catch FilterFun(Event) of - true -> - do_config_editor(Editor, Event, lightblue, S#state.event_order); - {true, Event2} when record(Event2, event) -> - do_config_editor(Editor, Event2, lightblue, S#state.event_order); - false -> - do_config_editor(Editor, Event, red, S#state.event_order); - Bad -> - Contents = {bad_filter, Name, Bad}, - BadEvent = Event#event{contents = Contents}, - do_config_editor(Editor, BadEvent, red, S#state.event_order) - end. - -do_config_editor(Editor, Event, Colour, TsKey) -> - String = event_to_string(Event, TsKey), - gs:config(Editor, {insert, {'end', String}}), - gs:config(Editor, {enable, false}), - gs:config(Editor, {bg, Colour}), - Event. - -%%%---------------------------------------------------------------------- -%%% String handling -%%%---------------------------------------------------------------------- - -term_to_string(Term) -> - case catch io_lib:format("~s", [Term]) of - {'EXIT', _} -> io_lib:format("~p", [Term]); - GoodString -> GoodString - end. - -now_to_string({Mega, Sec, Micro} = Now) - when integer(Mega), integer(Sec), integer(Micro) -> - {{Y, Mo, D}, {H, Mi, S}} = calendar:now_to_universal_time(Now), - lists:concat([Y, "-", Mo, "-", D, " ", H, ".", Mi, ".", S, ".", Micro]); -now_to_string(Other) -> - term_to_string(Other). - -event_to_string(Event, TsKey) -> - ReportedTs = Event#event.trace_ts, - ParsedTs = Event#event.event_ts, - Deep = - ["DETAIL LEVEL: ", term_to_string(Event#event.detail_level), - "\nLABEL: ", term_to_string(Event#event.label), - case Event#event.from == Event#event.to of - true -> - ["\nACTOR: ", term_to_string(Event#event.from)]; - false -> - ["\nFROM: ", term_to_string(Event#event.from), - "\nTO: ", term_to_string(Event#event.to)] - end, - case ReportedTs == ParsedTs of - true -> - ["\nPARSED: ", now_to_string(ParsedTs)]; - false -> - case TsKey of - trace_ts -> - ["\nTRACE_TS: ", now_to_string(ReportedTs), - "\nEVENT_TS: ", now_to_string(ParsedTs)]; - event_ts -> - ["\nEVENT_TS: ", now_to_string(ParsedTs), - "\nTRACE_TS: ", now_to_string(ReportedTs)] - end - end, - "\nCONTENTS:\n\n", term_to_string(Event#event.contents)], - lists:flatten(Deep). - -pad_string(Atom, MinLen) when atom(Atom) -> - pad_string(atom_to_list(Atom), MinLen); -pad_string(String, MinLen) when integer(MinLen), MinLen >= 0 -> - Len = length(String), - case Len >= MinLen of - true -> - String; - false -> - String ++ lists:duplicate(MinLen - Len, $ ) - end. - -send_viewer_event(S, Event) -> - case S#state.viewer_pid of - ViewerPid when pid(ViewerPid) -> - ViewerPid ! {et, Event}; - undefined -> - ignore - end. diff --git a/lib/et/src/et_gs_contents_viewer.erl b/lib/et/src/et_gs_contents_viewer.erl new file mode 100644 index 0000000000..f6a87bd608 --- /dev/null +++ b/lib/et/src/et_gs_contents_viewer.erl @@ -0,0 +1,591 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2000-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%%---------------------------------------------------------------------- +%% Purpose: Displays details of a trace event +%%---------------------------------------------------------------------- + +-module(et_gs_contents_viewer). + +-behaviour(gen_server). + +%% External exports +-export([start_link/1, + stop/1]). + +%% gen_server callbacks +-export([init/1, terminate/2, code_change/3, + handle_call/3, handle_cast/2, handle_info/2]). + +-include("../include/et.hrl"). +-include("et_internal.hrl"). + +-record(state, {parent_pid, % Pid of parent process + viewer_pid, % Pid of viewer process + event_order, % Field to be used as primary key + event, % The original event + filtered_event, % Event processed by active filter + active_filter, % Name of the active filter + filters, % List of possible filters + win, % GUI: Window object + packer, % GUI: Packer object + width, % GUI: Window width + height}). % GUI: Window height + +%%%---------------------------------------------------------------------- +%%% Client side +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% start_link(Options) -> {ok, ContentsPid} | {error, Reason} +%% +%% Start an viewer for the event contents as window in GS +%% +%% Options = [option()] +%% +%% option() = +%% +%% {parent_pid, pid()} | % Pid of parent process +%% {viewer_pid, pid()} | % Pid of viewer process +%% {event_order, event_order()} | % Field to be used as primary key +%% {active_filter, atom()} | % Name of the active filter +%% {filter, atom(), fun()} % A named filter fun +%% +%% event_order() = 'trace_ts' | 'event_ts' +%% ContentsPid = pid() +%% Reason = term() +%%---------------------------------------------------------------------- + +start_link(Options) -> + case parse_opt(Options, default_state()) of + {ok, S} -> + case gen_server:start_link(?MODULE, [S], []) of + {ok, ContentsPid} when S#state.parent_pid =/= self() -> + unlink(ContentsPid), + {ok, ContentsPid}; + Other -> + Other + end; + {error, Reason} -> + {error, Reason} + end. + +default_state() -> + #state{parent_pid = self(), + viewer_pid = undefined, + active_filter = ?DEFAULT_FILTER_NAME, + filters = [?DEFAULT_FILTER], + width = 600, + height = 300}. + +parse_opt([], S) -> + Name = S#state.active_filter, + Filters = S#state.filters, + if + S#state.event =:= undefined -> + {error, {badarg, no_event}}; + is_atom(Name) -> + case lists:keysearch(Name, #filter.name, Filters) of + {value, F} when is_record(F, filter) -> + {ok, S#state{active_filter = Name}}; + false -> + {error, {badarg, {no_such_filter, Name, Filters}}} + end + end; +parse_opt([H | T], S) -> + case H of + {parent_pid, ParentPid} when is_pid(ParentPid) -> + parse_opt(T, S#state{parent_pid = ParentPid}); + {viewer_pid, ViewerPid} when is_pid(ViewerPid) -> + parse_opt(T, S#state{viewer_pid = ViewerPid}); + {event_order, trace_ts} -> + parse_opt(T, S#state{event_order = trace_ts}); + {event_order, event_ts} -> + parse_opt(T, S#state{event_order = event_ts}); + {event, Event} when is_record(Event, event) -> + parse_opt(T, S#state{event = Event}); + {active_filter, Name} when is_atom(Name) -> + parse_opt(T, S#state{active_filter = Name}); + F when is_record(F, filter), + is_atom(F#filter.name), + is_function(F#filter.function) -> + Filters = lists:keydelete(F#filter.name, #filter.name, S#state.filters), + Filters2 = lists:keysort(#filter.name, [F | Filters]), + parse_opt(T, S#state{filters = Filters2}); + {width, Width} when is_integer(Width), Width > 0 -> + parse_opt(T, S#state{width = Width}); + {height, Height} when is_integer(Height), Height > 0 -> + parse_opt(T, S#state{height = Height}); + Bad -> + {error, {bad_option, Bad}} + end; +parse_opt(BadList, _S) -> + {error, {bad_option_list, BadList}}. + +%%---------------------------------------------------------------------- +%% stop(ContentsPid) -> ok +%% +%% Stops a contents viewer process +%% +%% ContentsPid = pid() +%%---------------------------------------------------------------------- + +stop(ContentsPid) -> + unlink(ContentsPid), + call(ContentsPid, stop). + +call(ContentsPid, Request) -> + gen_server:call(ContentsPid, Request, infinity). + +%%%---------------------------------------------------------------------- +%%% Callback functions from gen_server +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Func: init/1 +%% Returns: {ok, State} | +%% {ok, State, Timeout} | +%% ignore | +%% {stop, Reason} +%%---------------------------------------------------------------------- + +init([S]) when is_record(S, state) -> + process_flag(trap_exit, true), + S2 = create_window(S), + {ok, S2}. + +%%---------------------------------------------------------------------- +%% Func: handle_call/3 +%% Returns: {reply, Reply, State} | +%% {reply, Reply, State, Timeout} | +%% {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, Reply, State} | (terminate/2 is called) +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_call(stop, _From, S) -> + unlink(S#state.parent_pid), + {stop, shutdown, ok, S}; +handle_call(Request, From, S) -> + ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", + [?MODULE, self(), Request, From, S]), + Reply = {error, {bad_request, Request}}, + {reply, Reply, S}. + +%%---------------------------------------------------------------------- +%% Func: handle_cast/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_cast(Msg, S) -> + ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", + [?MODULE, self(), Msg, S]), + {noreply, S}. + +%%---------------------------------------------------------------------- +%% Func: handle_info/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_info({gs, Button, click, Data, _Other}, S) -> + case Button of + close -> + gs:destroy(S#state.win), + {stop, normal, S}; + save -> + Event = S#state.event, + Bin = list_to_binary(event_to_string(Event, S#state.event_order)), + TimeStamp = + case S#state.event_order of + trace_ts -> Event#event.trace_ts; + event_ts -> Event#event.event_ts + end, + FileName = ["et_contents_viewer_", now_to_string(TimeStamp), ".save"], + file:write_file(lists:flatten(FileName), Bin), + {noreply, S}; + _PopupMenuItem when is_record(Data, filter) -> + F = Data, + ChildState= S#state{active_filter = F#filter.name}, + case gen_server:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid), + {noreply, S}; + _ -> + {noreply, S} + end; + {hide, Actors} -> + send_viewer_event(S, {delete_actors, Actors}), + {noreply, S}; + {show, Actors} -> + send_viewer_event(S, {insert_actors, Actors}), + {noreply, S}; + {mode, Mode} -> + send_viewer_event(S, {mode, Mode}), + {noreply, S}; + Nyi -> + ok = error_logger:format("~p: click ~p ignored (nyi)~n", + [?MODULE, Nyi]), + {noreply, S} + end; +handle_info({gs, _Obj, destroy,_, _}, S) -> + unlink(S#state.parent_pid), + gs:destroy(S#state.win), + {stop, normal, S}; +handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]}, S) -> + case KeySym of + 'c' -> + gs:destroy(S#state.win), + {stop, normal, S}; + + 'f' -> + E = S#state.filtered_event, + From = E#event.from, + send_viewer_event(S, {delete_actors, [From]}), + {noreply, S}; + 't' -> + E = S#state.filtered_event, + To = E#event.to, + send_viewer_event(S, {delete_actors, [To]}), + {noreply, S}; + 'b' -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + send_viewer_event(S, {delete_actors, [From, To]}), + {noreply, S}; + + 'F' -> + E = S#state.filtered_event, + From = E#event.from, + send_viewer_event(S, {insert_actors, [From]}), + {noreply, S}; + 'T' -> + E = S#state.filtered_event, + To = E#event.to, + send_viewer_event(S, {insert_actors, [To]}), + {noreply, S}; + 'B' -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + send_viewer_event(S, {insert_actors, [From, To]}), + {noreply, S}; + + 's' -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + First = et_collector:make_key(S#state.event_order, E), + Mode = {search_actors, forward, First, [From, To]}, + send_viewer_event(S, {mode, Mode}), + {noreply, S}; + 'r' -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + First = et_collector:make_key(S#state.event_order, E), + Mode = {search_actors, reverse, First, [From, To]}, + send_viewer_event(S, {mode, Mode}), + {noreply, S}; + 'a' -> + send_viewer_event(S, {mode, all}), + {noreply, S}; + + 0 -> + case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of + {value, F} when is_record(F, filter) -> + ChildState= S#state{active_filter = F#filter.name}, + case gen_server:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid); + _ -> + ignore + end; + false -> + ignore + end, + {noreply, S}; + Int when is_integer(Int), Int > 0, Int =< 9 -> + case catch lists:nth(Int, S#state.filters) of + F when is_record(F, filter) -> + ChildState= S#state{active_filter = F#filter.name}, + case gen_server:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid); + _ -> + ignore + end; + {'EXIT', _} -> + ignore + end, + {noreply, S}; + + 'Shift_L' -> + {noreply, S}; + 'Shift_R' -> + {noreply, S}; + 'Caps_Lock' -> + {noreply, S}; + _ -> + io:format("~p: ignored: ~p~n", [?MODULE, KeySym]), + {noreply, S} + end; +handle_info({gs, _Obj, configure, [], [W, H | _]}, S) -> + gs:config(S#state.packer, [{width, W},{height, H}]), + S2 = S#state{width = W, height = H}, + {noreply, S2}; +handle_info({'EXIT', Pid, Reason}, S) -> + if + Pid =:= S#state.parent_pid -> + unlink(Pid), + {stop, Reason, S}; + true -> + {noreply, S} + end; +handle_info(Info, S) -> + ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", + [?MODULE, self(), Info, S]), + {noreply, S}. + +%%---------------------------------------------------------------------- +%% Func: terminate/2 +%% Purpose: Shutdown the server +%% Returns: any (ignored by gen_server) +%%---------------------------------------------------------------------- + +terminate(_Reason, _S) -> + ignore. + +%%---------------------------------------------------------------------- +%% Func: code_change/3 +%% Purpose: Convert process state when code is changed +%% Returns: {ok, NewState} +%%---------------------------------------------------------------------- + +code_change(_OldVsn, S, _Extra) -> + {ok, S}. + +%%%---------------------------------------------------------------------- +%%% Handle graphics +%%%---------------------------------------------------------------------- + +create_window(S) -> + H = S#state.height, + W = S#state.width, + Name = S#state.active_filter, + Title = lists:concat([?MODULE, " (filter: ", Name, ")"]), + WinOpt = [{title, Title}, {configure, true}, + {width, W}, {height, H}], + GS = gs:start(), + Win = gs:window(GS, WinOpt), + Bar = gs:menubar(Win, []), + create_file_menu(Bar), + PackerOpt = [{packer_x, [{stretch, 1}]}, + {packer_y, [{stretch, 1}, {fixed, 25}]}, + {x, 0}, {y, 25}], + Packer = gs:frame(Win, PackerOpt), + EditorOpt = [{pack_xy, {1, 1}}, {vscroll, right}, {hscroll, bottom}, + {wrap, none}, + {bg, lightblue}, {font, {courier, 12}}], + Editor = gs:editor(Packer, EditorOpt), + FilteredEvent = config_editor(Editor, S), + S2 = S#state{win = Win, packer = Packer, filtered_event = FilteredEvent}, + create_hide_menu(Bar, S2), + create_search_menu(Bar, S2), + create_filter_menu(Bar, S#state.filters), + gs:config(Packer, [{width, W}, {height, H}]), + gs:config(Win, [{map,true}, {keypress, true}]), + S2. + +create_file_menu(Bar) -> + Button = gs:menubutton(Bar, [{label, {text, "File"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(close, Menu, [{label, {text,"Close (c)"}}]), + gs:menuitem(save, Menu, [{label, {text,"Save"}}]). + +create_filter_menu(Bar, Filters) -> + Button = gs:menubutton(Bar, [{label, {text, "Filters"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(Menu, [{label, {text, "Select Filter"}}, {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + Item = fun(F, N) when F#filter.name =:= ?DEFAULT_FILTER_NAME-> + Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]), + gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), + N + 1; + (F, N) -> + Name = F#filter.name, + Label = lists:concat([pad_string(Name, 20), "(", N, ")"]), + gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), + N + 1 + end, + Filters2 = lists:keysort(#filter.name, Filters), + lists:foldl(Item, 1, Filters2), + Menu. + +create_hide_menu(Bar, S) -> + Button = gs:menubutton(Bar, [{label, {text, "Hide"}}]), + Menu = gs:menu(Button, []), + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + if + S#state.viewer_pid =:= undefined -> + ignore; + From =:= To -> + gs:menuitem(Menu, [{label, {text, "Hide actor in Viewer "}}, {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem({hide, [From]}, Menu, [{label, {text,"From=To (f|t|b)"}}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "Show actor in Viewer "}}, {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem({show, [From]}, Menu, [{label, {text,"From=To (F|T|B)"}}]); + true -> + gs:menuitem(Menu, [{label, {text, "Hide actor in Viewer "}}, {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem({hide, [From]}, Menu, [{label, {text,"From (f)"}}]), + gs:menuitem({hide, [To]}, Menu, [{label, {text,"To (t)"}}]), + gs:menuitem({hide, [From, To]}, Menu, [{label, {text,"Both (b)"}}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "Show actor in Viewer "}}, {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem({show, [From]}, Menu, [{label, {text,"From (F)"}}]), + gs:menuitem({show, [To]}, Menu, [{label, {text,"To (T)"}}]), + gs:menuitem({show, [From, To]}, Menu, [{label, {text,"Both (B)"}}]) + end. + +create_search_menu(Bar, S) -> + Button = gs:menubutton(Bar, [{label, {text, "Search"}}]), + Menu = gs:menu(Button, []), + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + gs:menuitem(Menu, [{label, {text, "Search in Viewer "}}, + {bg, lightblue}, {enable, false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + if + S#state.viewer_pid =:= undefined -> + S; + From =:= To -> + Key = et_collector:make_key(S#state.event_order, E), + ModeS = {search_actors, forward, Key, [From]}, + ModeR = {search_actors, reverse, Key, [From]}, + gs:menuitem({mode, ModeS}, Menu, [{label, {text,"Forward from this event (s)"}}]), + gs:menuitem({mode, ModeR}, Menu, [{label, {text,"Reverse from this event (r)"}}]); + true -> + Key = et_collector:make_key(S#state.event_order, E), + ModeS = {search_actors, forward, Key, [From, To]}, + ModeR = {search_actors, reverse, Key, [From, To]}, + gs:menuitem({mode, ModeS}, Menu, [{label, {text,"Forward from this event (s)"}}]), + gs:menuitem({mode, ModeR}, Menu, [{label, {text,"Reverse from this event (r)"}}]) + end, + gs:menuitem({mode, all}, Menu, [{label, {text,"Abort search. Display all (a)"}}]). + +config_editor(Editor, S) -> + Event = S#state.event, + Name = S#state.active_filter, + {value, F} = lists:keysearch(Name, #filter.name, S#state.filters), + FilterFun = F#filter.function, + case catch FilterFun(Event) of + true -> + do_config_editor(Editor, Event, lightblue, S#state.event_order); + {true, Event2} when is_record(Event2, event) -> + do_config_editor(Editor, Event2, lightblue, S#state.event_order); + false -> + do_config_editor(Editor, Event, red, S#state.event_order); + Bad -> + Contents = {bad_filter, Name, Bad}, + BadEvent = Event#event{contents = Contents}, + do_config_editor(Editor, BadEvent, red, S#state.event_order) + end. + +do_config_editor(Editor, Event, Colour, TsKey) -> + String = event_to_string(Event, TsKey), + gs:config(Editor, {insert, {'end', String}}), + gs:config(Editor, {enable, false}), + gs:config(Editor, {bg, Colour}), + Event. + +%%%---------------------------------------------------------------------- +%%% String handling +%%%---------------------------------------------------------------------- + +term_to_string(Term) -> + case catch io_lib:format("~s", [Term]) of + {'EXIT', _} -> io_lib:format("~p", [Term]); + GoodString -> GoodString + end. + +now_to_string({Mega, Sec, Micro} = Now) + when is_integer(Mega), is_integer(Sec), is_integer(Micro) -> + {{Y, Mo, D}, {H, Mi, S}} = calendar:now_to_universal_time(Now), + lists:concat([Y, "-", Mo, "-", D, " ", H, ".", Mi, ".", S, ".", Micro]); +now_to_string(Other) -> + term_to_string(Other). + +event_to_string(Event, TsKey) -> + ReportedTs = Event#event.trace_ts, + ParsedTs = Event#event.event_ts, + Deep = + ["DETAIL LEVEL: ", term_to_string(Event#event.detail_level), + "\nLABEL: ", term_to_string(Event#event.label), + case Event#event.from =:= Event#event.to of + true -> + ["\nACTOR: ", term_to_string(Event#event.from)]; + false -> + ["\nFROM: ", term_to_string(Event#event.from), + "\nTO: ", term_to_string(Event#event.to)] + end, + case ReportedTs =:= ParsedTs of + true -> + ["\nPARSED: ", now_to_string(ParsedTs)]; + false -> + case TsKey of + trace_ts -> + ["\nTRACE_TS: ", now_to_string(ReportedTs), + "\nEVENT_TS: ", now_to_string(ParsedTs)]; + event_ts -> + ["\nEVENT_TS: ", now_to_string(ParsedTs), + "\nTRACE_TS: ", now_to_string(ReportedTs)] + end + end, + "\nCONTENTS:\n\n", term_to_string(Event#event.contents)], + lists:flatten(Deep). + +pad_string(Atom, MinLen) when is_atom(Atom) -> + pad_string(atom_to_list(Atom), MinLen); +pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 -> + Len = length(String), + case Len >= MinLen of + true -> + String; + false -> + String ++ lists:duplicate(MinLen - Len, $ ) + end. + +send_viewer_event(S, Event) -> + case S#state.viewer_pid of + ViewerPid when is_pid(ViewerPid) -> + ViewerPid ! {et, Event}; + undefined -> + ignore + end. diff --git a/lib/et/src/et_gs_viewer.erl b/lib/et/src/et_gs_viewer.erl new file mode 100644 index 0000000000..7235269aff --- /dev/null +++ b/lib/et/src/et_gs_viewer.erl @@ -0,0 +1,1483 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%%---------------------------------------------------------------------- +%% Purpose: Displays a sequence chart for trace events (messages/actions) +%%---------------------------------------------------------------------- + +-module(et_gs_viewer). + +-behaviour(gen_server). + +%% External exports +-export([start_link/1]). + +%% gen_server callbacks +-export([init/1, terminate/2, code_change/3, + handle_call/3, handle_cast/2, handle_info/2]). + +-include("../include/et.hrl"). +-include("et_internal.hrl"). + +-define(unknown, "UNKNOWN"). + +-record(state, + {parent_pid, % Pid of parent process + collector_pid, % Pid of collector process + event_order, % Field to be used as primary key + trace_pattern, % Collector trace pattern + active_filter, % Name of the active filter + filters, % List of possible filters + selected_actor, % Actor selected by user + first_event, % Key of first event (regardless of visibility) + last_event, % Key of last event (regardless of visibility) + max_events, % Maximum number of shown events + events, % Queue containg all event keys (regardless of visibility) + max_actors, % Maximum number of shown actors + actors, % List of known actors + refresh_needed, % Refresh is needed in order to show all actors + display_mode, % Display all or only matching actors + detail_level, % Show only events with lesser detail level + hide_actions, % Hide/show events where to == from actor (bool) + hide_unknown, % Hide/show events with unknown actor (bool) + is_suspended, % Suspend viewer updates (bool) + title, % GUI: Window title + win, % GUI: Window object + menubar, % GUI: Menu bar object + packer, % GUI: Packer object + width, % GUI: Window width + height, % GUI: Window height + scale, % GUI: Scaling factor on canvas + font, % GUI: Font to be used on text labels + canvas_width, % GUI: Canvas width + canvas_height, % GUI: Canvas height + canvas, % GUI: Canvas object + y_pos}). % GUI: Current y position on canvas + +-record(actor, {name, string}). + +-define(initial_x, 10). +-define(incr_x, 60). +-define(initial_y, 15). +-define(incr_y, 15). +-define(detail_level_min, 0). +-define(detail_level_max, 100). + +%%%---------------------------------------------------------------------- +%%% Client side +%%%---------------------------------------------------------------------- + +start_link(Options) -> + case parse_opt(Options, default_state(), []) of + {ok, S, CollectorOpt} -> + case S#state.collector_pid of + CollectorPid when is_pid(CollectorPid) -> + case gen_server:start_link(?MODULE, [S], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid), + {ok, Pid}; + Other -> + Other + end; + undefined -> + case et_collector:start_link(CollectorOpt) of + {ok, CollectorPid} -> + S2 = S#state{collector_pid = CollectorPid}, + case gen_server:start_link(?MODULE, [S2], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid), + {ok, Pid}; + Other -> + Other + end; + {error, Reason} -> + {error, {et_collector, Reason}} + end + end; + {error, Reason} -> + {error, Reason} + end. + +default_state() -> + #state{parent_pid = self(), + collector_pid = undefined, + detail_level = ?detail_level_max, + active_filter = ?DEFAULT_FILTER_NAME, + filters = [?DEFAULT_FILTER], + event_order = trace_ts, + is_suspended = false, + max_events = 100, + first_event = first, + last_event = first, + events = queue_new(), + max_actors = 5, + actors = [create_actor(?unknown)], + selected_actor = ?unknown, + hide_actions = false, + hide_unknown = false, + refresh_needed = false, + display_mode = all, + scale = 2, + canvas_height = 0, + canvas_width = 0, + width = 800, + height = 600}. + +parse_opt([], S, CollectorOpt) -> + {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]}; +parse_opt([H | T], S, CollectorOpt) -> + case H of + {parent_pid, Parent} when Parent =:= undefined -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2); + {parent_pid, Parent} when is_pid(Parent) -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2); + {title, Title} -> + parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt); + {detail_level, Level} when is_integer(Level), + Level >= ?detail_level_min, + Level =< ?detail_level_max -> + parse_opt(T, S#state{detail_level = Level}, CollectorOpt); + {detail_level, max} -> + parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt); + {detail_level, min} -> + parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt); + {is_suspended, true} -> + parse_opt(T, S#state{is_suspended = true}, CollectorOpt); + {is_suspended, false} -> + parse_opt(T, S#state{is_suspended = false}, CollectorOpt); + {scale, Scale} when is_integer(Scale), Scale > 0 -> + parse_opt(T, S#state{scale = Scale}, CollectorOpt); + {width, W} when is_integer(W), W > 0 -> + parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt); + {height, WH} when is_integer(WH), WH > 0 -> + parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt); + {collector_pid, Pid} when is_pid(Pid) -> + parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt); + {collector_pid, undefined} -> + parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt); + {active_filter, Name} when is_atom(Name) -> + parse_opt(T, S#state{active_filter = Name}, CollectorOpt); + {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2); + {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2); + {trace_port, _Port} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_max_queue, _Queue} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_pattern, _Pattern} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_global, _Boolean} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_client, _Client} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {dict_insert, {filter, Name}, Fun} -> + if + is_atom(Name), is_function(Fun) -> + F = #filter{name = Name, function = Fun}, + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2); + true -> + {error, {bad_option, H}} + end; + {dict_insert, {subscriber, Pid}, _Val} -> + if + is_pid(Pid) -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + true -> + {error, {bad_option, H}} + end; + {dict_insert, _Key, _Val} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {dict_delete, {filter, Name}} -> + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{filters = Filters}, CollectorOpt2); + {dict_delete, _Key} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {max_events, Max} when is_integer(Max), Max > 0-> + parse_opt(T, S#state{max_events = Max}, CollectorOpt); + {max_events, Max} when Max =:= infinity -> + parse_opt(T, S#state{max_events = Max}, CollectorOpt); + {max_actors, Max} when is_integer(Max), Max >= 0-> + parse_opt(T, S#state{max_actors = Max}, CollectorOpt); + {max_actors, Max} when Max =:= infinity -> + parse_opt(T, S#state{max_actors = Max}, CollectorOpt); + {actors, ActorNames} when is_list(ActorNames) -> + ActorNames2 = + case lists:member(?unknown, ActorNames) of + false -> [?unknown | ActorNames]; + true -> ActorNames + end, + Actors = [create_actor(Name) || Name <- ActorNames2], + parse_opt(T, S#state{actors = Actors}, CollectorOpt); + {first_event, First} -> + parse_opt(T, S#state{first_event = First}, CollectorOpt); + {hide_unknown, Bool} when Bool =:= false -> + parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt); + {hide_unknown, Bool} when Bool =:= true -> + parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt); + {hide_actions, Bool} when Bool =:= false -> + parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt); + {hide_actions, Bool} when Bool =:= true -> + parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt); + {display_mode, Mode = all} -> + parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); + {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when is_list(Actors), Dir =:= forward -> + parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); + {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when is_list(Actors), Dir =:= reverse -> + parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); + + Bad -> + {error, {bad_option, Bad}} + end; +parse_opt(BadList, _S, _CollectorOpt) -> + {error, {bad_option_list, BadList}}. + +do_dict_insert({filter, Name}, Fun, S) when is_atom(Name), is_function(Fun) -> + F = #filter{name = Name, function = Fun}, + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + Filters2 = lists:keysort(#filter.name, [F | Filters]), + gs:destroy(filter_menu), + create_filter_menu(S#state.active_filter, Filters2), + S#state{filters = Filters2}; +do_dict_insert(_Key, _Val, S) -> + %% ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n", + %% [?MODULE, self(), Key, Val]), + S. + +do_dict_delete({filter, Name}, S) when is_atom(Name), Name =/= S#state.active_filter -> + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + gs:destroy(filter_menu), + create_filter_menu(S#state.active_filter, Filters), + S#state{filters = Filters}; +do_dict_delete(_Key, S) -> + %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n", + %% [?MODULE, self(), Key]), + S. + +%%%---------------------------------------------------------------------- +%%% Callback functions from gen_server +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Func: init/1 +%% Returns: {ok, State} | +%% {ok, State, Timeout} | +%% ignore | +%% {stop, Reason} +%%---------------------------------------------------------------------- + +init([S]) when is_record(S, state) -> + process_flag(trap_exit, true), + InitialTimeout = 0, + case S#state.parent_pid of + undefined -> + ignore; + Pid when is_pid(Pid) -> + link(Pid) + end, + et_collector:dict_insert(S#state.collector_pid, + {subscriber, self()}, + ?MODULE), + {ok, create_main_window(S), InitialTimeout}. + +%%---------------------------------------------------------------------- +%% Func: handle_call/3 +%% Returns: {reply, Reply, State} | +%% {reply, Reply, State, Timeout} | +%% {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, Reply, State} | (terminate/2 is called) +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_call(get_collector_pid, _From, S) -> + Reply = S#state.collector_pid, + reply(Reply, S); +handle_call(stop, _From, S) -> + gs:destroy(S#state.win), + {stop, shutdown, ok, S}; +handle_call(Request, From, S) -> + ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", + [?MODULE, self(), Request, From, S]), + Reply = {error, {bad_request, Request}}, + reply(Reply, S). + +%%---------------------------------------------------------------------- +%% Func: handle_cast/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_cast(Msg, S) -> + ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", + [?MODULE, self(), Msg, S]), + noreply(S). + +%%---------------------------------------------------------------------- +%% Func: handle_info/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_info({et, {more_events, _Size}}, S) -> + noreply(S); +handle_info({et, {insert_actors, ActorNames}}, S) when is_list(ActorNames) -> + Fun = fun(N, Actors) -> + case lists:keymember(N, #actor.name, Actors) of + true -> Actors; + false -> Actors ++ [create_actor(N)] + end + end, + Actors = lists:foldl(Fun, S#state.actors, ActorNames), + S2 = refresh_main_window(S#state{actors = Actors}), + noreply(S2); +handle_info({et, {delete_actors, ActorNames}}, S) when is_list(ActorNames)-> + Fun = fun(N, Actors) when N =:= ?unknown -> + Actors; + (N, Actors) -> + lists:keydelete(N, #actor.name, Actors) + end, + New = lists:foldl(Fun, S#state.actors, ActorNames), + S2 = refresh_main_window(S#state{actors = New}), + noreply(S2); +handle_info({et, {dict_insert, Key, Val}}, S) -> + S2 = do_dict_insert(Key, Val, S), + noreply(S2); +handle_info({et, {dict_delete, Key}}, S) -> + S2 = do_dict_delete(Key, S), + noreply(S2); +handle_info({et, first}, S) -> + S2 = scroll_first(S), + noreply(S2); +handle_info({et, prev}, S) -> + S2 = scroll_prev(S), + noreply(S2); +handle_info({et, next}, S) -> + S2 = scroll_next(S), + noreply(S2); +handle_info({et, last}, S) -> + S2 = scroll_last(S), + noreply(S2); +handle_info({et, refresh}, S) -> + S2 = refresh_main_window(S), + noreply(S2); +handle_info({et, {display_mode, Mode}}, S) -> + S2 = change_display_mode(Mode, S), + noreply(S2); +handle_info({et, close}, S) -> + gs:destroy(S#state.win), + {stop, shutdown, S}; +handle_info({gs, Button, click, Data, Other} = Click, S) -> + CollectorPid = S#state.collector_pid, + case Button of + close -> + gs:destroy(S#state.win), + {stop, shutdown, S}; + suspended -> + case Other of + [_Text, _Group, Bool | _] when Bool =:= true -> + S2 = do_suspend(S), + noreply(S2); + [_Text, _Group, Bool | _] when Bool =:= false -> + S2 = do_resume(S), + noreply(S2); + _ -> + click_error(Click, S), + noreply(S) + end; + hide_actions -> + case Other of + [_Text, _Group, Bool | _] when Bool =:= true -> + S2 = refresh_main_window(S#state{hide_actions = Bool}), + noreply(S2); + [_Text, _Group, Bool | _] when Bool =:= false -> + S2 = refresh_main_window(S#state{hide_actions = Bool}), + noreply(S2); + _ -> + click_error(Click, S), + noreply(S) + end; + hide_unknown -> + case Other of + [_Text, _Group, Bool | _] when Bool =:= true -> + S2 = refresh_main_window(S#state{hide_unknown = Bool}), + noreply(S2); + [_Text, _Group, Bool | _] when Bool =:= false -> + S2 = refresh_main_window(S#state{hide_unknown = Bool}), + noreply(S2); + _ -> + click_error(Click, S), + noreply(S) + end; + up -> + S2 = scroll_up(S), + noreply(S2); + down -> + S2 = scroll_down(S), + noreply(S2); + first -> + S2 = scroll_first(S), + noreply(S2); + prev -> + S2 = scroll_prev(S), + noreply(S2); + next -> + S2 = scroll_next(S), + noreply(S2); + last -> + S2 = scroll_last(S), + noreply(S2); + refresh -> + S2 = refresh_main_window(S), + noreply(S2); + {display_mode, Mode} -> + S2 = change_display_mode(Mode, S), + noreply(S2); + close_all -> + close_all(S); + close_all_others -> + close_all_others(S); + first_all -> + et_collector:multicast(CollectorPid, first), + noreply(S); + prev_all -> + et_collector:multicast(CollectorPid, prev), + noreply(S); + next_all -> + et_collector:multicast(CollectorPid, next), + noreply(S); + last_all -> + et_collector:multicast(CollectorPid, last), + noreply(S); + refresh_all -> + et_collector:multicast(CollectorPid, refresh), + noreply(S); + clear_all -> + et_collector:clear_table(CollectorPid), + et_collector:multicast(CollectorPid, refresh), + noreply(S); + load_all -> + et_collector:start_trace_client(CollectorPid, event_file, "et_viewer.log"), + noreply(S); + save_all -> + et_collector:save_event_file(CollectorPid, + "et_viewer.log", + [existing, write, keep]), + noreply(S); + {open_viewer, Scale} -> + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + _Level when Data =:= detail_level, is_integer(hd(Other)), + hd(Other) >= ?detail_level_min, + hd(Other) =< ?detail_level_max -> + S2 = S#state{detail_level = hd(Other)}, + noreply(S2); + _PopupMenuItem when is_record(Data, filter) -> + open_viewer(S#state.scale, Data#filter.name, [?unknown], S), + noreply(S); + _ -> + click_error(Click, S), + noreply(S) + end; +handle_info({gs, _Obj, destroy,_, _}, S) -> + gs:destroy(S#state.win), + {stop, shutdown, S}; +handle_info({gs, _Obj, buttonpress, _, [_Button, X, Y | _]}, S) -> + S3 = + case y_to_n(Y, S) of + actor -> + %% Actor click + case S#state.actors of + [] -> + S; + _ -> + N = x_to_n(X, S), + A = lists:nth(N, S#state.actors), + S#state{selected_actor = A} + end; + {event, N} -> + %% Event click + List = queue_to_list(S#state.events), + S2 = S#state{events = list_to_queue(List)}, + + Key = lists:nth(N, List), + Pid = S#state.collector_pid, + Fun = fun create_contents_window/2, + case et_collector:iterate(Pid, Key, -1) of + Prev when Prev =:= Key -> + et_collector:iterate(Pid, first, 1, Fun, S2); + Prev -> + et_collector:iterate(Pid, Prev, 1, Fun, S2) + end + end, + noreply(S3); +handle_info({gs, _Obj, buttonrelease, _, [_Button, X, Y | _]}, S) -> + S2 = + case y_to_n(Y, S) of + actor -> + %% Actor click + case S#state.actors of + [] -> + S; + Actors -> + N = x_to_n(X, S), + New = lists:nth(N, S#state.actors), + Old = S#state.selected_actor, + case New#actor.name =:= Old#actor.name of + true -> + A = S#state.selected_actor, + toggle_search_for_actor(A#actor.name, S); + false -> + move_actor(Old, New, Actors, S) + end + end; + {event, _N} -> + %% Event click ignored + S + end, + noreply(S2); +handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]} = Key, S) -> + case KeySym of + 'c' -> + close_all_others(S); + 'C' -> + close_all(S); + 'Up' -> + S2 = scroll_up(S), + noreply(S2); + 'Down' -> + S2 = scroll_down(S), + noreply(S2); + 'f' -> + S2 = scroll_first(S), + noreply(S2); + 'p' -> + S2 = scroll_prev(S), + noreply(S2); + 'Prior' -> + S2 = scroll_prev(S), + noreply(S2); + 'n' -> + S2 = scroll_next(S), + noreply(S2); + 'Next' -> + S2 = scroll_next(S), + noreply(S2); + 'l' -> + S2 = scroll_last(S), + noreply(S2); + 'r' -> + S2 = refresh_main_window(S), + noreply(S2); + 'F' -> + et_collector:multicast(S#state.collector_pid, first), + noreply(S); + 'P' -> + et_collector:multicast(S#state.collector_pid, prev), + noreply(S); + 'N' -> + et_collector:multicast(S#state.collector_pid, next), + noreply(S); + 'L' -> + et_collector:multicast(S#state.collector_pid, last), + noreply(S); + 'R' -> + et_collector:multicast(S#state.collector_pid, refresh), + noreply(S); + + 'a' -> + S2 = S#state{display_mode = all}, + S3 = refresh_main_window(S2), + noreply(S3); + + 'equal' -> + Scale = S#state.scale, + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + 'plus' -> + Scale = S#state.scale + 1, + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + 'minus' -> + case S#state.scale of + 1 -> + gs:config(S#state.canvas, beep); + Scale -> + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale - 1, S#state.active_filter, Actors, S) + end, + noreply(S); + 0 -> + case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of + {value, F} when is_record(F, filter) -> + open_viewer(S#state.scale, F#filter.name, [?unknown], S); + false -> + gs:config(S#state.canvas, beep) + end, + noreply(S); + Int when is_integer(Int), Int > 0, Int =< 9 -> + case catch lists:nth(Int, S#state.filters) of + F when is_record(F, filter) -> + open_viewer(S#state.scale, F#filter.name, [?unknown], S); + {'EXIT', _} -> + gs:config(S#state.canvas, beep) + end, + noreply(S); + + 'Shift_L' -> + noreply(S); + 'Shift_R' -> + noreply(S); + 'Caps_Lock' -> + noreply(S); + + _ -> + click_error(Key, S), + noreply(S) + end; +handle_info({gs, _Obj,configure, [], [W, H | _]}, S) -> + gs:config(S#state.packer, [{width, W}, {height, H}]), + S2 = S#state{width = W, height = H}, + noreply(S2); +handle_info(timeout, S) -> + Try = + case S#state.display_mode of + {search_actors, reverse, _, _} -> + -10; + _ -> + 10 + end, + if + S#state.is_suspended =:= true -> + {noreply, S, infinity}; + S#state.max_events =:= infinity -> + display_more_events(Try, S); + true -> + Needed = S#state.max_events - queue_length(S#state.events), + if + Needed =< 0 -> {noreply, S, infinity}; + Needed > 10 -> display_more_events(Try, S); + Needed =< 10 -> display_more_events(Needed, S) + end + end; + +handle_info({'EXIT', Pid, Reason}, S) -> + if + Pid =:= S#state.collector_pid -> + unlink(Pid), + gs:destroy(S#state.win), + {stop, Reason, S}; + Pid =:= S#state.parent_pid -> + unlink(Pid), + gs:destroy(S#state.win), + {stop, Reason, S}; + true -> + noreply(S) + end; +handle_info(Info, S) -> + ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", + [?MODULE, self(), Info, S]), + noreply(S). + +%%---------------------------------------------------------------------- +%% Func: terminate/2 +%% Purpose: Shutdown the server +%% Returns: any (ignored by gen_server) +%%---------------------------------------------------------------------- + +terminate(_Reason, _S) -> + ignore. + +%%---------------------------------------------------------------------- +%% Func: code_change/3 +%% Purpose: Convert process state when code is changed +%% Returns: {ok, NewState} +%%---------------------------------------------------------------------- + +code_change(_OldVsn, S, _Extra) -> + {ok, S}. + +%%%---------------------------------------------------------------------- +%%% Handle suspend/resume +%%%---------------------------------------------------------------------- + +reply(Reply, S) -> + case queue_length(S#state.events) of + _ when S#state.is_suspended =:= true -> + {reply, Reply, S, infinity}; + _ when S#state.max_events =:= infinity -> + {reply, Reply, S, 500}; + N when N >= S#state.max_events -> + {reply, Reply, S, infinity}; + _ -> + {reply, Reply, S, 0} + end. + +noreply(S) -> + case queue_length(S#state.events) of + _ when S#state.is_suspended =:= true -> + {noreply, S, infinity}; + _ when S#state.max_events =:= infinity -> + {noreply, S, 500}; + N when N >= S#state.max_events -> + {noreply, S, infinity}; + _ -> + {noreply, S, 0} + end. + +do_suspend(S) -> + config_suspend(S#state{is_suspended = true}). + +do_resume(S) -> + config_suspend(S#state{is_suspended = false}). + +config_suspend(S) -> + Suspended = S#state.is_suspended, + gs:config(refresh, [{enable, not Suspended}]), + gs:config(refresh_all, [{enable, not Suspended}]), + gs:config(clear_all, [{enable, not Suspended}]), + S. + +refresh_main_window(S) -> + Pid = S#state.collector_pid, + Key = S#state.first_event, + case et_collector:iterate(Pid, Key, -1) of + Prev when Prev =:= Key -> + scroll_first(S); + _Prev -> + S2 = S#state{last_event = S#state.first_event}, + clear_canvas(S2) + end. + +scroll_first(S) -> + S2 = S#state{first_event = first, last_event = first}, + clear_canvas(S2). + +scroll_prev(S) -> + Try = + case S#state.max_events of + infinity -> -10; + Max -> -Max + end, + Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, Try), + S2 = S#state{first_event = Key, last_event = Key}, + clear_canvas(S2). + +scroll_next(S) -> + S2 = S#state{first_event = S#state.last_event}, + clear_canvas(S2). + +scroll_up(S) -> + Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, -5), + S2 = S#state{first_event = Key, last_event = Key}, + clear_canvas(S2). + +scroll_down(S) -> + Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, 5), + S2 = S#state{first_event = Key, last_event = Key}, + clear_canvas(S2). + +scroll_last(S) -> + S2 = S#state{first_event = last, last_event = last}, + clear_canvas(S2). + +change_display_mode(Mode, S) -> + case Mode of + all -> + S2 = S#state{display_mode = Mode}, + refresh_main_window(S2); + {search_actors, _Dir, _Key, []} -> + S2 = S#state{display_mode = all}, + refresh_main_window(S2); + {search_actors, _Dir, Key, Actors} when is_list(Actors) -> + Pid = S#state.collector_pid, + Prev = et_collector:iterate(Pid, Key, -1), + S2 = S#state{first_event = Prev, + last_event = Prev, + display_mode = Mode}, + clear_canvas(S2) + end. + +close_all(S) -> + et_collector:multicast(S#state.collector_pid, close), + timer:sleep(timer:seconds(1)), + spawn(et_collector, stop, [S#state.collector_pid]), + gs:destroy(S#state.win), + {stop, shutdown, S}. + +close_all_others(S) -> + Fun = + fun({{subscriber, Pid}, _}) -> + if + Pid =:= self() -> + ignore; + true -> + unlink(Pid), + Pid ! {et, close} + end + end, + All = et_collector:dict_match(S#state.collector_pid, + {{subscriber, '_'}, '_'}), + lists:foreach(Fun, All), + noreply(S). + +click_error(Click, S) -> + gs:config(S#state.canvas, beep), + io:format("~p: ignored: ~p~n", [?MODULE, Click]). + +%%%---------------------------------------------------------------------- +%%% Clone viewer +%%%---------------------------------------------------------------------- + +open_viewer(Scale, FilterName, Actors, S) -> + Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function} + || F <- S#state.filters], + Options = + [{parent_pid, S#state.parent_pid}, + {title, S#state.title}, + {collector_pid, S#state.collector_pid}, + {is_suspended, S#state.is_suspended}, + {detail_level, S#state.detail_level}, + {active_filter, FilterName}, + {event_order, S#state.event_order}, + {first_event, S#state.first_event}, + {max_events, S#state.max_events}, + {max_actors, S#state.max_actors}, + {hide_actions, S#state.hide_actions}, + {hide_unknown, S#state.hide_unknown}, + {is_suspended, S#state.is_suspended}, + {actors, Actors}, + {scale, Scale}, + {width, S#state.width}, + {height, S#state.height} | Filters], + case start_link(Options) of + {ok, ViewerPid} -> + unlink(ViewerPid), + ok; + {error, Reason} -> + ok = error_logger:format("~p: Failed to start a new window: ~p~n", + [?MODULE, Reason]) + end. + +%%%---------------------------------------------------------------------- +%%% Handle graphics +%%%---------------------------------------------------------------------- + +create_main_window(S) -> + Font = select_font(S#state.scale), + GS = gs:start(), + Name = name_to_string(S#state.active_filter), + Title = case S#state.title of + undefined -> atom_to_list(?MODULE); + Explicit -> name_to_string(Explicit) + end, + WinOpt = [{title, Title ++ " (filter: " ++ Name ++ ")"}, + {configure, true}, + {width, S#state.width}, + {height, S#state.height}], + Win = gs:window(GS, WinOpt), + Bar = gs:menubar(Win, []), + + create_file_menu(Bar), + create_viewer_menu(Bar), + create_collector_menu(Bar), + gs:menubutton(filter_button, Bar, [{label, {text, "Filter"}}]), + create_filter_menu(S#state.active_filter, S#state.filters), + create_help_menu(Bar), + + config_suspend(S), + + PackerOpt = [{packer_x, [{fixed, 5}, {fixed, 40}, {fixed, 40}, + {stretch, 1}, {fixed, 5}]}, + {packer_y, [{fixed, 30}, {fixed, 30}, + {stretch, 1}, {fixed, 30}]}, + {x, 0}, {y, 30}], + Packer = gs:frame(Win, PackerOpt), + gs:checkbutton(suspended, Packer, [{label,{text,"Freeze"}}, + {x, 10}, {y, 0}, + {width, 120}, {align, w}, + {select, S#state.is_suspended}]), + gs:checkbutton(hide_actions, Packer, [{label,{text,"Hide From=To"}}, + {x, 10}, {y, 20}, + {width, 120}, {align, w}, + {select, S#state.hide_actions}]), + gs:checkbutton(hide_unknown, Packer, [{label,{text,"Hide Unknown"}}, + {x, 10}, {y, 40}, + {width, 120}, {align, w}, + {select, S#state.hide_unknown}]), + gs:scale(Packer, [{text,"Detail Level"}, + {range, {?detail_level_min, ?detail_level_max}}, + {orient, horizontal}, + {x, 150}, {y, 0}, {height, 65}, {width, 200}, + {pos, S#state.detail_level}, {data, detail_level}]), + CanvasW = calc_canvas_width(S), + CanvasH = calc_canvas_height(S), + CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom}, + {scrollregion, {2, 2, CanvasW, CanvasH}}], + Canvas = gs:canvas(Packer, CanOpt), + gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]), + gs:config(Packer, [{width, S#state.width}, {height, S#state.height}]), + gs:config(Win, [{map, true}, {keypress, true}]), + S2 = S#state{title = Title, + win = Win, font = Font, packer = Packer, + canvas_width = CanvasW, canvas_height = CanvasH, + canvas = Canvas, + y_pos = ?initial_y * S#state.scale}, + draw_all_actors(S2). + +select_font(Scale) when is_integer(Scale) -> + case Scale of + 1 -> {courier, 7}; + 2 -> {courier, 10}; + 3 -> {courier, 12}; + 4 -> {courier, 14}; + S -> {courier, S * 4} + end. + +create_file_menu(Bar) -> + Button = gs:menubutton(Bar, [{label, {text, "File"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(close_all, Menu, [{label, {text, "Close Collector and all Viewers (C) "}}]), + gs:menuitem(close_all_others, Menu, [{label, {text, "Close other Viewers, but keep Collector (c)"}}]), + gs:menuitem(close, Menu, [{label, {text, "Close this Viewer, but keep Collector"}}]), + gs:menuitem(Menu, [{itemtype, separator}]), + + gs:menuitem(clear_all, Menu, [{label, {text, "Clear Collector"}}]), + gs:menuitem(load_all, Menu, [{label, {text, "Load Collector from the file \"et_viewer.log\""}}]), + gs:menuitem(save_all, Menu, [{label, {text, "Save Collector to the file \"et_viewer.log\""}}]). + +create_viewer_menu(Bar) -> + Button = gs:menubutton(Bar, [{label, {text, "Viewer"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(Menu, [{label, {text, "Scroll this Viewer"}}, {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(first, Menu, [{label, {text, "First (f)"}}]), + gs:menuitem(prev, Menu, [{label, {text, "Prev (p)"}}]), + gs:menuitem(next, Menu, [{label, {text, "Next (n)"}}]), + gs:menuitem(last, Menu, [{label, {text, "Last (l)"}}]), + gs:menuitem(refresh, Menu, [{label, {text, "Refresh (r)"}}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(up, Menu, [{label, {text, "Up 5 (Up)"}}]), + gs:menuitem(down, Menu, [{label, {text, "Down 5 (Down)"}}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "Search in this Viewer"}}, {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem({mode, all}, Menu, [{label, {text, "Abort search. Display all (a)"}}]). + +create_collector_menu(Bar) -> + Button = gs:menubutton(Bar, [{label, {text, "Collector"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(Menu, [{label, {text, "Scroll all Viewers"}}, {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(first_all, Menu, [{label, {text, "First (F)"}}]), + gs:menuitem(prev_all, Menu, [{label, {text, "Prev (P)"}}]), + gs:menuitem(next_all, Menu, [{label, {text, "Next (N)"}}]), + gs:menuitem(last_all, Menu, [{label, {text, "Last (L)"}}]), + gs:menuitem(refresh_all, Menu, [{label, {text, "Refresh (R)"}}]). + +create_filter_menu(ActiveFilterName, Filters) -> + Menu = gs:menu(filter_menu, filter_button, []), + Item = fun(F, N) when F#filter.name =:= collector -> + Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]), + gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), + N + 1; + (F, N) -> + Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]), + gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), + N + 1 + end, + gs:menuitem(Menu, [{label, {text, "Same Filter New Scale"}}, {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters), + Same = lists:concat([pad_string(ActiveFilterName, 20), "(=)"]), + Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+)"]), + Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-)"]), + gs:menuitem(Menu, [{label, {text, Same}}, {data, Filter}]), + gs:menuitem(Menu, [{label, {text, Smaller}}, {data, Filter}]), + gs:menuitem(Menu, [{label, {text, Larger}}, {data, Filter}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "New Filter Same Scale"}}, {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + lists:foldl(Item, 1, Filters). + +create_help_menu(Bar) -> + Button = gs:menubutton(Bar, [{label, {text, "Help"}}]), + Menu = gs:menu(Button, []), + gs:menuitem(Menu, [{label, {text, "Display details of an event"}}, + {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{label, {text, " Single click on the name tag or the arrow (Mouse-1)"}}, + {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "Toggle actor search"}}, + {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{label, {text, " Single click on the name tag (Mouse-1)"}}, + {enable,false}]), + gs:menuitem(Menu, [{itemtype, separator}]), + gs:menuitem(Menu, [{label, {text, "Move actor"}}, + {bg, lightblue}, {enable,false}]), + gs:menuitem(Menu, [{label, {text, " se drag and drop on name tag (Mouse-1)"}}, + {enable,false}]). + +clear_canvas(S) -> + gs:destroy(S#state.canvas), + CanvasW = calc_canvas_width(S), + CanvasH = calc_canvas_height(S), + CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom}, + {scrollregion, {2, 2, CanvasW, CanvasH}}], + Canvas = gs:canvas(S#state.packer, CanOpt), + gs:config(S#state.packer, [{width, S#state.width}, {height, S#state.height}]), + gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]), + S2 = S#state{refresh_needed = false, + y_pos = ?initial_y * S#state.scale, + canvas = Canvas, + canvas_width = CanvasW, + canvas_height = CanvasH, + events = queue_new()}, + draw_all_actors(S2). + +calc_canvas_width(S) -> + Min = calc_min_actors(S), + CanvasW = ((2 * ?initial_x) + (Min * ?incr_x)) * S#state.scale, + lists:max([CanvasW, S#state.width - (15 * S#state.scale), S#state.canvas_width]). + +calc_canvas_height(S) -> + Min = calc_min_events(S), + CanvasH = ((2 * ?initial_y) + (Min * ?incr_y)) * S#state.scale, + lists:max([CanvasH, S#state.height - (4 * 30), S#state.canvas_height]). + +calc_min_actors(S) -> + Max = S#state.max_actors, + N = length(S#state.actors), + if + Max =:= infinity -> + N * 2; + Max < N -> + N; + true -> + Max + end. + +calc_min_events(S) -> + Max = S#state.max_events, + N = queue_length(S#state.events), + if + Max =:= infinity -> + N * 2; + Max < N -> + N; + true -> + Max + end. + +display_more_events(Try, S) -> + Name = S#state.active_filter, + {value, F} = lists:keysearch(Name, #filter.name, S#state.filters), + FilterFun = F#filter.function, + Fun = fun(Event, State) -> + case catch FilterFun(Event) of + true -> + State2 = ensure_key(Event, State), + opt_display_event(Event, State2); + {true, Event2} -> + State2 = ensure_key(Event2, State), + opt_display_event(Event2, State2); + false -> + ensure_key(Event, State); + Bad -> + Contents = {bad_filter, Name, Bad, Event}, + Event2 = Event#event{contents = Contents, + from = bad_filter, + to = bad_filter}, + State2 = ensure_key(Event2, State), + opt_display_event(Event2, State2) + end + end, + Pid = S#state.collector_pid, + S2 = et_collector:iterate(Pid, S#state.last_event, Try, Fun, S), + case queue_length(S2#state.events) - queue_length(S#state.events) of + Diff when Diff =:= Try -> + %% Got as much as requested, look for more + %% io:format("Done: ~p~n", [{Try, Diff}]), + {noreply, S2, 0}; + _Diff when S2#state.first_event =:= S#state.first_event, + S2#state.last_event =:= S#state.last_event -> + %% Got lesser than requested, wait a while before looking for more + %% io:format("More: ~p~n", [{Try, Diff}]), + {noreply, S2, 500}; + _Diff -> + %% Got lesser than requested, look for more + %% io:format("More2: ~p~n", [{Try, Diff}]), + {noreply, S2, 0} + end. + +ensure_key(E, S) when is_record(E, event), is_record(S, state) -> + Key = et_collector:make_key(S#state.event_order, E), + case S#state.first_event of + first -> + S#state{first_event = Key, last_event = Key}; + last -> + S#state{first_event = Key, last_event = Key}; + _ -> + S#state{last_event = Key} + end. + +opt_display_event(E, S) -> + case S#state.display_mode of + all -> + display_event(E, S); + {search_actors, _Dir, _FirstKey, Actors} -> + %% Key = S#state.last_event, + From = select_actor_name(E#event.from, S), + case lists:member(From, Actors) of + true -> + display_event(E, S); + false -> + To = select_actor_name(E#event.to, S), + case lists:member(To, Actors) of + true -> + display_event(E, S); + false -> + S + end + end + end. + +select_actor_name(Name, S) -> + case lists:keymember(Name, #actor.name, S#state.actors) of + true -> Name; + false -> ?unknown + end. + +display_event(E, S) when E#event.detail_level < S#state.detail_level -> + {FromRefresh, From} = ensure_actor(E#event.from, S), + {FromName, FromPos, S2} = From, + {ToRefresh, To} = ensure_actor(E#event.to, S2), + {ToName, ToPos, S3} = To, + if + FromRefresh =/= false, ToRefresh =/= false -> + Key = S#state.last_event, + refresh_beep(S), + S3#state{refresh_needed = true, + events = queue_in(Key, S3#state.events)}; + FromName =:= ToName -> + case S#state.hide_actions of + true -> + S3; + false -> + Label = name_to_string(E#event.label), + draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3) + end; + true -> + Label = name_to_string(E#event.label), + draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3) + end; +display_event(_, S) -> + S. + +draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S) -> + Key = S#state.last_event, + case S#state.y_pos + (?incr_y * S#state.scale) of + _ when S#state.hide_unknown =:= true, FromName =:= ?unknown -> + S; + _ when S#state.hide_unknown =:= true, ToName =:= ?unknown -> + S; + Y when Y > S#state.canvas_height -> + refresh_beep(S), + S#state{refresh_needed = true, + events = queue_in(Key, S#state.events)}; + Y -> + S2 = S#state{y_pos = Y, events = queue_in(Key, S#state.events)}, + S3 = draw_arrow(FromPos, ToPos, S2), + draw_label(Label, FromName, ToName, FromPos, ToPos, S3) + end. + +refresh_beep(S) -> + case S#state.refresh_needed of + false -> + gs:config(S#state.canvas, beep), + gs:config(S#state.canvas, beep), + gs:config(S#state.canvas, beep); + true -> + ignore + end. + +draw_arrow(Pos, Pos, S) -> + S; +draw_arrow(FromPos, ToPos, S) -> + Y = S#state.y_pos, + CanOpts = [{coords, [{FromPos , Y}, {ToPos, Y}]}, + {arrow, last},{width, 1}, {fg, black}], + gs:line(S#state.canvas, CanOpts), + S. + +draw_label(Label, FromName, ToName, FromPos, ToPos, S) -> + Colour = + if + FromName =:= ?unknown, + ToName =:= ?unknown -> blue; %turquoise; + FromName =:= ?unknown -> orange; + ToName =:= ?unknown -> orange; + FromPos =:= ToPos -> blue; + true -> red + end, + Scale = S#state.scale, + X = lists:min([FromPos, ToPos]) + (6 * Scale), + Y = S#state.y_pos, + write_text(Label, X, Y, Colour, S), + S. + +draw_all_actors(State) -> + Scale = State#state.scale, + Fun = fun(A, X) -> + draw_actor(A, X, State), + X + (?incr_x * Scale) + end, + lists:foldl(Fun, ?initial_x * Scale, State#state.actors), + State. + +%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}} +ensure_actor(Name, S) -> + do_ensure_actor(Name, S, S#state.actors, 0). + +do_ensure_actor(Name, S, [H | _], N) when H#actor.name =:= Name -> + Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, + {false, {Name, Pos, S}}; +do_ensure_actor(Name, S, [_ | T], N) -> + do_ensure_actor(Name, S, T, N + 1); +do_ensure_actor(Name, S, [], N) -> + %% A brand new actor, let's see if it does fit + Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, + MaxActors = S#state.max_actors, + if + is_integer(MaxActors), N > MaxActors -> + %% Failed on max_actors limit, put into unknown + %% Assume that unknown always is in actor list + ensure_actor(?unknown, S); + Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) -> + %% New actor does not fit in canvas, refresh needed + A = create_actor(Name), + draw_actor(A, Pos, S), + {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}; + true -> + %% New actor fits in canvas. Draw the new actor. + A = create_actor(Name), + draw_actor(A, Pos, S), + {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}} + end. + +draw_actor(A, LineX, S) -> + Scale = S#state.scale, + TextX = LineX - (5 * Scale), + TextY = ?initial_y * Scale, + LineTopY = TextY + ((?incr_y / 2) * Scale), + LineBotY = S#state.canvas_height - ((?incr_y / 2) * Scale), + Colour = case A#actor.name of + ?unknown -> orange; + _ -> red + end, + write_text(A#actor.string, TextX, TextY, Colour, S), + LineOpt = [{coords, [{LineX, LineTopY}, {LineX, LineBotY}]}, + {width, 1}, {fg, Colour}], + gs:line(S#state.canvas, LineOpt). + +toggle_search_for_actor(ActorName,S) -> + case S#state.display_mode of + all -> + io:format("~p: search for: ~p ++ ~p~n", [?MODULE, [], [ActorName]]), + %% Search for this actor + Key = S#state.first_event, + Actors = [ActorName], + Mode = {search_actors, forward, Key, Actors}, + change_display_mode(Mode, S); + {search_actors, Dir, Key, Actors}-> + Actors2 = + case lists:member(ActorName, Actors) of + true -> + io:format("~p: search for: ~p -- ~p~n", [?MODULE, Actors, [ActorName]]), + %% Remove actor from search list + Actors -- [ActorName]; + false -> + io:format("~p: search for: ~p ++ ~p~n", [?MODULE, Actors, [ActorName]]), + %% Add actor from search list + [ActorName | Actors] + end, + Mode2 = {search_actors, Dir, Key, Actors2}, + change_display_mode(Mode2, S) + end. + +move_actor(From, To, Actors, S) -> + Pos = #actor.name, + ToName = To#actor.name, + FromName = From#actor.name, + ToIx = actor_index(ToName, Pos, Actors), + FromIx = actor_index(FromName, Pos, Actors), + if + FromIx =/= 0, ToIx =/= 0, ToIx > FromIx -> + Actors2 = lists:keydelete(FromName, Pos, Actors), + Actors3 = insert_actor_after(From, To, Actors2), + S2 = S#state{actors = Actors3}, + refresh_main_window(S2); + FromIx =/= 0, ToIx =/= 0 -> + Actors2 = lists:keydelete(FromName, Pos, Actors), + Actors3 = insert_actor_before(From, To, Actors2), + S2 = S#state{actors = Actors3}, + refresh_main_window(S2); + true -> + %% Ignore + S + end. + +insert_actor_after(From, To, [H | T]) -> + case To#actor.name =:= H#actor.name of + true -> [H, From | T]; + false -> [H | insert_actor_after(From, To, T)] + end; +insert_actor_after(_From, _To, []) -> + []. + +insert_actor_before(From, To, [H | T]) -> + case To#actor.name =:= H#actor.name of + true -> [From, H | T]; + false -> [H | insert_actor_before(From, To, T)] + end; +insert_actor_before(_From, _To, []) -> + []. + +actor_index(_Key, _Pos, []) -> + 0; +actor_index(Key, Pos, [H | T]) -> + case Key =:= element(Pos, H) of + false -> actor_index(Key, Pos, T) + 1; + true -> 1 + end. + +y_to_n(Y, S) -> + Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)), + N = round(Y2 / ?incr_y - 0.2), + MaxN = queue_length(S#state.events), + if + N =< 0 -> actor; + N > MaxN -> actor; + true -> {event, N} + end. + +x_to_n(X, S) -> + Scale = S#state.scale, + Len = length(S#state.actors), + X2 = X - (?initial_x * Scale), + N = X2 / (?incr_x * Scale), + N2 = trunc(N + 1.5), + if + N2 > Len -> Len; + N2 < 1 -> 1; + true -> N2 + end. + +write_text(Text, X, Y, Colour, S) -> + Opt = [{coords, [{X, Y - (?incr_y * S#state.scale / 2)}]}, + {font, S#state.font}, {fg, Colour}, {text, Text}], + gs:text(S#state.canvas, Opt). + +create_contents_window(Event, S) -> + Options = [{viewer_pid, self()}, + {event, Event}, + {event_order, S#state.event_order}, + {active_filter, S#state.active_filter} + | S#state.filters], + case et_gs_contents_viewer:start_link(Options) of + {ok, _Pid} -> + S; + {error, Reason} -> + ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n", + [?MODULE, self(), Options, Reason]), + S + end. + +%%%---------------------------------------------------------------------- +%%% String padding of actors +%%%---------------------------------------------------------------------- + +create_actor(Name) -> + String = name_to_string(Name), + PaddedString = pad_string(String, 8), + #actor{name = Name, string = PaddedString}. + +name_to_string(Name) -> + case catch io_lib:format("~s", [Name]) of + {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name])); + GoodString -> lists:flatten(GoodString) + end. + +pad_string(Atom, MinLen) when is_atom(Atom) -> + pad_string(atom_to_list(Atom), MinLen); +pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 -> + Len = length(String), + case Len >= MinLen of + true -> + String; + false -> + String ++ lists:duplicate(MinLen - Len, $ ) + end. + +%%%---------------------------------------------------------------------- +%%% Queue management +%%%---------------------------------------------------------------------- + +queue_new() -> + {0, [], []}. + +queue_in(X, {Size, In, Out}) -> + {Size + 1, [X | In], Out}. + +%% queue_out(Q) -> +%% case Q of +%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}}; +%% {Size, [], []} -> {empty, {Size, [], []}}; +%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)}) +%% end. + +queue_to_list({_Size, [], Out}) -> + Out; +queue_to_list({_Size, In, Out}) -> + Out ++ lists:reverse(In). + +queue_length({Size, _In, _Out}) -> + Size. + +list_to_queue(List) when is_list(List) -> + {length(List), [], List}. diff --git a/lib/et/src/et_internal.hrl b/lib/et/src/et_internal.hrl index b6f84f5b4b..1feb161ef1 100644 --- a/lib/et/src/et_internal.hrl +++ b/lib/et/src/et_internal.hrl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2002-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2002-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -21,3 +21,6 @@ %%---------------------------------------------------------------------- -record(filter, {name, function}). + +-define(DEFAULT_FILTER_NAME, all). +-define(DEFAULT_FILTER, #filter{name = ?DEFAULT_FILTER_NAME, function = fun(E) -> E end}). diff --git a/lib/et/src/et_selector.erl b/lib/et/src/et_selector.erl index 845359622d..66f5723bad 100644 --- a/lib/et/src/et_selector.erl +++ b/lib/et/src/et_selector.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2001-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2001-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -41,14 +41,14 @@ %% %% detail_level() = min | max | integer(X) when X =< 0, X >= 100 %% -%% min - minimum level of tracing (ignore calls to report_event/4,5) -%% max - maximum level of tracing (all calls to report_event/4,5) +%% min - minimum level of tracing (ignore calls to trace_me/4,5) +%% max - maximum level of tracing (all calls to trace_me/4,5) %% integer() - explicit detail level of tracing %%---------------------------------------------------------------------- make_pattern(undefined) -> {undefined, undefined}; -make_pattern({Mod, Pattern}) when atom(Mod) -> +make_pattern({Mod, Pattern}) when is_atom(Mod) -> case Pattern of min -> {Mod, []}; @@ -57,7 +57,7 @@ make_pattern({Mod, Pattern}) when atom(Mod) -> Body = [], Cond = [], {Mod, [{Head, Cond, Body}]}; - DetailLevel when integer(DetailLevel) -> + DetailLevel when is_integer(DetailLevel) -> Head = ['$1', '_', '_', '_', '_'], Body = [], Cond = [{ '<', '$1', DetailLevel}], @@ -80,28 +80,31 @@ make_pattern({Mod, Pattern}) when atom(Mod) -> %% detail_level() = min | max | integer(X) when X =<0, X >= 100 %% empty_match_spec() = [] %% -%% Min detail level deactivates tracing of calls to report_event/4,5 +%% Min detail level deactivates tracing of calls to trace_me/4,5 %% -%% Max detail level activates tracing of all calls to report_event/4,5 +%% Max detail level activates tracing of all calls to trace_me/4,5 %% %% integer(X) detail level activates tracing of all calls to -%% report_event/4,5 whose detail level argument is lesser than X. +%% trace_me/4,5 whose detail level argument is lesser than X. %% -%% An empty match spec deactivates tracing of calls to report_event/4,5 +%% An empty match spec deactivates tracing of calls to trace_me/4,5 %% -%% Other match specs activates tracing of calls to report_event/4,5 +%% Other match specs activates tracing of calls to trace_me/4,5 %% accordlingly with erlang:trace_pattern/2. %%---------------------------------------------------------------------- -change_pattern({Mod, Pattern}) when atom(Mod) -> - MFA = {Mod, report_event, 5}, +change_pattern({Mod, Pattern}) when is_atom(Mod) -> + MFA = {Mod, trace_me, 5}, case Pattern of undefined -> ignore; [] -> + error_to_exit(old_ctp(MFA)), error_to_exit(dbg:ctp(MFA)), error_to_exit(dbg:p(all, clear)); - List when list(List) -> + List when is_list(List) -> + error_to_exit(old_ctp(MFA)), + error_to_exit(old_tp(MFA, Pattern)), error_to_exit(dbg:ctp(MFA)), error_to_exit(dbg:tp(MFA, Pattern)), error_to_exit(dbg:p(all, [call, timestamp])); @@ -110,6 +113,18 @@ change_pattern({Mod, Pattern}) when atom(Mod) -> end, ok. +old_ctp({Mod, _Fun, Args}) -> + case Mod of + et -> ignore; + _ -> dbg:ctp({Mod, report_event, Args}) + end. + +old_tp({Mod, _Fun, Args}, Pattern) -> + case Mod of + et -> ignore; + _ -> dbg:tp({Mod, report_event, Args}, Pattern) + end. + error_to_exit({error, Reason}) -> exit(Reason); error_to_exit({ok, Res}) -> @@ -148,7 +163,7 @@ error_to_exit({ok, Res}) -> %% label - Label intended to provide a brief event summary. %% contents - All nitty gritty details of the event. %% -%% See et:report_event/4 and et:report_event/5 for details. +%% See et:trace_me/4 and et:trace_me/5 for details. %% %% Returns: %% @@ -161,7 +176,7 @@ error_to_exit({ok, Res}) -> %% should be dropped %%---------------------------------------------------------------------- -parse_event(_Mod, E) when record(E, event) -> +parse_event(_Mod, E) when is_record(E, event) -> true; parse_event(Mod, Trace) -> ParsedTS = erlang:now(), @@ -293,6 +308,14 @@ parse_event(Mod, Trace, ParsedTS, ReportedTS, From, Label, Contents) -> {msg, Msg}]}}; call -> case Contents of + [{M, trace_me, [UserDetailLevel, UserFrom, UserTo, UserLabel, UserContents]}] when M == Mod, Mod /= undefined -> + {true, #event{detail_level = UserDetailLevel, + trace_ts = ReportedTS, + event_ts = ParsedTS, + from = UserFrom, + to = UserTo, + label = UserLabel, + contents = UserContents}}; % Term [{M, report_event, [UserDetailLevel, UserFrom, UserTo, UserLabel, UserContents]}] when M == Mod, Mod /= undefined -> {true, #event{detail_level = UserDetailLevel, trace_ts = ReportedTS, @@ -358,6 +381,21 @@ parse_event(Mod, Trace, ParsedTS, ReportedTS, From, Label, Contents) -> {to, From}, {mfa, MFA}, {return, ReturnValue}]}}; + exception_from -> + DetailLevel = 54, + [MFA, Exception] = Contents, + {true, #event{detail_level = DetailLevel, + trace_ts = ReportedTS, + event_ts = ParsedTS, + from = From, + to = From, + label = Label, + contents = [{label, Label}, + {detail_level, DetailLevel}, + {from, From}, + {to, From}, + {mfa, MFA}, + {exception, Exception}]}}; spawn -> DetailLevel = 25, [NewPid, MFA] = Contents, diff --git a/lib/et/src/et_viewer.erl b/lib/et/src/et_viewer.erl index ede2c401eb..d9bd01f8d0 100644 --- a/lib/et/src/et_viewer.erl +++ b/lib/et/src/et_viewer.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2000-2010. All Rights Reserved. +%% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %%---------------------------------------------------------------------- @@ -22,66 +22,23 @@ -module(et_viewer). --behaviour(gen_server). %% External exports -export([file/1, start/0, start/1, + start/2, start_link/1, + start_link/2, + open_event/2, stop/1, get_collector_pid/1]). -%% gen_server callbacks --export([init/1, terminate/2, code_change/3, - handle_call/3, handle_cast/2, handle_info/2]). - -include("../include/et.hrl"). -include("et_internal.hrl"). -define(unknown, "UNKNOWN"). --record(state, - {parent_pid, % Pid of parent process - collector_pid, % Pid of collector process - event_order, % Field to be used as primary key - trace_pattern, % Collector trace pattern - active_filter, % Name of the active filter - filters, % List of possible filters - selected_actor, % Actor selected by user - first_event, % Key of first event (regardless of visibility) - last_event, % Key of last event (regardless of visibility) - max_events, % Maximum number of shown events - events, % Queue containg all event keys (regardless of visibility) - max_actors, % Maximum number of shown actors - actors, % List of known actors - refresh_needed, % Refresh is needed in order to show all actors - display_mode, % Display all or only matching actors - detail_level, % Show only events with lesser detail level - hide_actions, % Hide/show events where to == from actor (bool) - hide_unknown, % Hide/show events with unknown actor (bool) - is_suspended, % Suspend viewer updates (bool) - title, % GUI: Window title - win, % GUI: Window object - menubar, % GUI: Menu bar object - packer, % GUI: Packer object - width, % GUI: Window width - height, % GUI: Window height - scale, % GUI: Scaling factor on canvas - font, % GUI: Font to be used on text labels - canvas_width, % GUI: Canvas width - canvas_height, % GUI: Canvas height - canvas, % GUI: Canvas object - y_pos}). % GUI: Current y position on canvas - --record(actor, {name, string}). - --define(initial_x, 10). --define(incr_x, 60). --define(initial_y, 15). --define(incr_y, 15). --define(detail_level_min, 0). --define(detail_level_max, 100). %%%---------------------------------------------------------------------- %%% Client side @@ -99,7 +56,7 @@ %%---------------------------------------------------------------------- file(FileName) -> - start_link([{trace_client, {file, FileName}}]). + start_link([{trace_client, {file, FileName}}], default). %%---------------------------------------------------------------------- %% start() -> ok @@ -113,14 +70,19 @@ file(FileName) -> %%---------------------------------------------------------------------- start() -> - start([{trace_global, true}]). + start([{trace_global, true}], default). %%---------------------------------------------------------------------- %% start(Options) -> {ok, ViewerPid} | {error, Reason} %%---------------------------------------------------------------------- +start(GUI) when GUI =:= wx; GUI =:= gs; GUI =:= default -> + start_link([{trace_global, true}], GUI); start(Options) -> - start_link([{parent_pid, undefined} | Options]). + start_link([{parent_pid, undefined} | Options], default). + +start(Options, GUI) -> + start_link([{parent_pid, undefined} | Options], GUI). %%---------------------------------------------------------------------- %% start_link(Options) -> {ok, ViewerPid} | {error, Reason} @@ -177,216 +139,31 @@ start(Options) -> %% and returns false | true | {true, NewEvent}. %%---------------------------------------------------------------------- -start_link(Options) -> - case parse_opt(Options, default_state(), []) of - {ok, S, CollectorOpt} -> - case S#state.collector_pid of - CollectorPid when pid(CollectorPid) -> - case gen_server:start_link(?MODULE, [S], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid), - {ok, Pid}; - Other -> - Other - end; - undefined -> - case et_collector:start_link(CollectorOpt) of - {ok, CollectorPid} -> - S2 = S#state{collector_pid = CollectorPid}, - case gen_server:start_link(?MODULE, [S2], []) of - {ok, Pid} when S#state.parent_pid /= self() -> - unlink(Pid), - {ok, Pid}; - Other -> - Other - end; - {error, Reason} -> - {error, {et_collector, Reason}} - end - end; - {error, Reason} -> - {error, Reason} - end. - -default_state() -> - #state{parent_pid = self(), - collector_pid = undefined, - detail_level = ?detail_level_max, - active_filter = collector, - filters = [#filter{name = collector, function = fun(E) -> E end}], - event_order = trace_ts, - is_suspended = false, - max_events = 100, - first_event = first, - last_event = first, - events = queue_new(), - max_actors = 5, - actors = [create_actor(?unknown)], - selected_actor = ?unknown, - hide_actions = false, - hide_unknown = false, - refresh_needed = false, - display_mode = all, - scale = 2, - canvas_height = 0, - canvas_width = 0, - width = 800, - height = 600}. - -parse_opt([], S, CollectorOpt) -> - {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]}; -parse_opt([H | T], S, CollectorOpt) -> - case H of - {parent_pid, Parent} when Parent == undefined -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2); - {parent_pid, Parent} when pid(Parent) -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt2); - {title, Title} -> - parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt); - {detail_level, Level} when integer(Level), - Level >= ?detail_level_min, - Level =< ?detail_level_max -> - parse_opt(T, S#state{detail_level = Level}, CollectorOpt); - {detail_level, max} -> - parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt); - {detail_level, min} -> - parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt); - {is_suspended, true} -> - parse_opt(T, S#state{is_suspended = true}, CollectorOpt); - {is_suspended, false} -> - parse_opt(T, S#state{is_suspended = false}, CollectorOpt); - {scale, Scale} when integer(Scale), Scale > 0 -> - parse_opt(T, S#state{scale = Scale}, CollectorOpt); - {width, W} when integer(W), W > 0 -> - parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt); - {height, WH} when integer(WH), WH > 0 -> - parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt); - {collector_pid, Pid} when pid(Pid) -> - parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt); - {collector_pid, undefined} -> - parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt); - {active_filter, Name} when atom(Name) -> - parse_opt(T, S#state{active_filter = Name}, CollectorOpt); - {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2); - {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2); - {trace_port, _Port} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {trace_max_queue, _Queue} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {trace_pattern, _Pattern} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {trace_global, _Boolean} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {trace_client, _Client} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {dict_insert, {filter, Name}, Fun} -> - if - atom(Name), function(Fun) -> - F = #filter{name = Name, function = Fun}, - Filters = lists:keydelete(Name, #filter.name, S#state.filters), - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2); - true -> - {error, {bad_option, H}} - end; - {dict_insert, {subscriber, Pid}, _Val} -> - if - pid(Pid) -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - true -> - {error, {bad_option, H}} - end; - {dict_insert, _Key, _Val} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {dict_delete, {filter, Name}} -> - Filters = lists:keydelete(Name, #filter.name, S#state.filters), - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S#state{filters = Filters}, CollectorOpt2); - {dict_delete, _Key} -> - CollectorOpt2 = [H | CollectorOpt], - parse_opt(T, S, CollectorOpt2); - {max_events, Max} when integer(Max), Max > 0-> - parse_opt(T, S#state{max_events = Max}, CollectorOpt); - {max_events, Max} when Max == infinity -> - parse_opt(T, S#state{max_events = Max}, CollectorOpt); - {max_actors, Max} when integer(Max), Max >= 0-> - parse_opt(T, S#state{max_actors = Max}, CollectorOpt); - {max_actors, Max} when Max == infinity -> - parse_opt(T, S#state{max_actors = Max}, CollectorOpt); - {actors, ActorNames} when list(ActorNames) -> - ActorNames2 = - case lists:member(?unknown, ActorNames) of - false -> [?unknown | ActorNames]; - true -> ActorNames - end, - Actors = [create_actor(Name) || Name <- ActorNames2], - parse_opt(T, S#state{actors = Actors}, CollectorOpt); - {first_event, First} -> - parse_opt(T, S#state{first_event = First}, CollectorOpt); - {hide_unknown, Bool} when Bool == false -> - parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt); - {hide_unknown, Bool} when Bool == true -> - parse_opt(T, S#state{hide_unknown = Bool}, CollectorOpt); - {hide_actions, Bool} when Bool == false -> - parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt); - {hide_actions, Bool} when Bool == true -> - parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt); - {display_mode, Mode = all} -> - parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); - {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when list(Actors), Dir == forward -> - parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); - {display_mode, Mode = {search_actors, Dir, _Key, Actors}} when list(Actors), Dir == reverse -> - parse_opt(T, S#state{display_mode = Mode}, CollectorOpt); +start_link(GUI) when GUI =:= wx; GUI =:= gs; GUI =:= default -> + start_link([{trace_global, true}], GUI); +start_link(Options) -> + start_link(Options, default). - Bad -> - {error, {bad_option, Bad}} - end; -parse_opt(BadList, _S, _CollectorOpt) -> - {error, {bad_option_list, BadList}}. +start_link(Options, GUI) -> + case GUI of + wx -> + et_wx_viewer:start_link(Options); + gs -> + et_gs_viewer:start_link(Options); + default -> + start_link(Options, which_gui()) + end. -do_dict_insert({filter, Name}, Fun, S) when atom(Name), function(Fun) -> - F = #filter{name = Name, function = Fun}, - Filters = lists:keydelete(Name, #filter.name, S#state.filters), - Filters2 = lists:keysort(#filter.name, [F | Filters]), - gs:destroy(filter_menu), - create_filter_menu(S#state.active_filter, Filters2), - S#state{filters = Filters2}; -do_dict_insert(_Key, _Val, S) -> - %% ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n", - %% [?MODULE, self(), Key, Val]), - S. -do_dict_delete({filter, Name}, S) when atom(Name), Name /= S#state.active_filter -> - Filters = lists:keydelete(Name, #filter.name, S#state.filters), - gs:destroy(filter_menu), - create_filter_menu(S#state.active_filter, Filters), - S#state{filters = Filters}; -do_dict_delete(_Key, S) -> - %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n", - %% [?MODULE, self(), Key]), - S. +which_gui() -> + try + wx:new(), + wx:destroy(), + wx + catch _:_ -> + gs + end. -%%---------------------------------------------------------------------- -%% get_collector_pid(ViewerPid) -> CollectorPid -%% -%% Returns the identifier of the collector process -%% -%% ViewerPid = pid() -%% CollectorPid = pid() -%%---------------------------------------------------------------------- get_collector_pid(ViewerPid) -> call(ViewerPid, get_collector_pid). @@ -402,1201 +179,14 @@ get_collector_pid(ViewerPid) -> stop(ViewerPid) -> call(ViewerPid, stop). -call(ViewerPid, Request) -> - gen_server:call(ViewerPid, Request, infinity). - -%%%---------------------------------------------------------------------- -%%% Callback functions from gen_server -%%%---------------------------------------------------------------------- -%%---------------------------------------------------------------------- -%% Func: init/1 -%% Returns: {ok, State} | -%% {ok, State, Timeout} | -%% ignore | -%% {stop, Reason} %%---------------------------------------------------------------------- -init([S]) when record(S, state) -> - process_flag(trap_exit, true), - InitialTimeout = 0, - case S#state.parent_pid of - undefined -> - ignore; - Pid when pid(Pid) -> - link(Pid) - end, - et_collector:dict_insert(S#state.collector_pid, - {subscriber, self()}, - ?MODULE), - {ok, create_main_window(S), InitialTimeout}. +open_event(ViewerPid, N) -> + call(ViewerPid, {open_event, N}). %%---------------------------------------------------------------------- -%% Func: handle_call/3 -%% Returns: {reply, Reply, State} | -%% {reply, Reply, State, Timeout} | -%% {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, Reply, State} | (terminate/2 is called) -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_call(get_collector_pid, _From, S) -> - Reply = S#state.collector_pid, - reply(Reply, S); -handle_call(stop, _From, S) -> - gs:destroy(S#state.win), - {stop, shutdown, ok, S}; -handle_call(Request, From, S) -> - ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", - [?MODULE, self(), Request, From, S]), - Reply = {error, {bad_request, Request}}, - reply(Reply, S). - -%%---------------------------------------------------------------------- -%% Func: handle_cast/2 -%% Returns: {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_cast(Msg, S) -> - ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", - [?MODULE, self(), Msg, S]), - noreply(S). - -%%---------------------------------------------------------------------- -%% Func: handle_info/2 -%% Returns: {noreply, State} | -%% {noreply, State, Timeout} | -%% {stop, Reason, State} (terminate/2 is called) -%%---------------------------------------------------------------------- - -handle_info({et, {insert_actors, ActorNames}}, S) when list(ActorNames) -> - Fun = fun(N, Actors) -> - case lists:keymember(N, #actor.name, Actors) of - true -> Actors; - false -> Actors ++ [create_actor(N)] - end - end, - Actors = lists:foldl(Fun, S#state.actors, ActorNames), - S2 = refresh_main_window(S#state{actors = Actors}), - noreply(S2); -handle_info({et, {delete_actors, ActorNames}}, S) when list(ActorNames)-> - Fun = fun(N, Actors) when N == ?unknown -> - Actors; - (N, Actors) -> - lists:keydelete(N, #actor.name, Actors) - end, - New = lists:foldl(Fun, S#state.actors, ActorNames), - S2 = refresh_main_window(S#state{actors = New}), - noreply(S2); -handle_info({et, {dict_insert, Key, Val}}, S) -> - S2 = do_dict_insert(Key, Val, S), - noreply(S2); -handle_info({et, {dict_delete, Key}}, S) -> - S2 = do_dict_delete(Key, S), - noreply(S2); -handle_info({et, first}, S) -> - S2 = scroll_first(S), - noreply(S2); -handle_info({et, prev}, S) -> - S2 = scroll_prev(S), - noreply(S2); -handle_info({et, next}, S) -> - S2 = scroll_next(S), - noreply(S2); -handle_info({et, last}, S) -> - S2 = scroll_last(S), - noreply(S2); -handle_info({et, refresh}, S) -> - S2 = refresh_main_window(S), - noreply(S2); -handle_info({et, {display_mode, Mode}}, S) -> - S2 = change_display_mode(Mode, S), - noreply(S2); -handle_info({et, close}, S) -> - gs:destroy(S#state.win), - {stop, shutdown, S}; -handle_info({gs, Button, click, Data, Other} = Click, S) -> - CollectorPid = S#state.collector_pid, - case Button of - close -> - gs:destroy(S#state.win), - {stop, shutdown, S}; - suspended -> - case Other of - [_Text, _Group, Bool | _] when Bool == true -> - S2 = do_suspend(S), - noreply(S2); - [_Text, _Group, Bool | _] when Bool == false -> - S2 = do_resume(S), - noreply(S2); - _ -> - click_error(Click, S), - noreply(S) - end; - hide_actions -> - case Other of - [_Text, _Group, Bool | _] when Bool == true -> - S2 = refresh_main_window(S#state{hide_actions = Bool}), - noreply(S2); - [_Text, _Group, Bool | _] when Bool == false -> - S2 = refresh_main_window(S#state{hide_actions = Bool}), - noreply(S2); - _ -> - click_error(Click, S), - noreply(S) - end; - hide_unknown -> - case Other of - [_Text, _Group, Bool | _] when Bool == true -> - S2 = refresh_main_window(S#state{hide_unknown = Bool}), - noreply(S2); - [_Text, _Group, Bool | _] when Bool == false -> - S2 = refresh_main_window(S#state{hide_unknown = Bool}), - noreply(S2); - _ -> - click_error(Click, S), - noreply(S) - end; - up -> - S2 = scroll_up(S), - noreply(S2); - down -> - S2 = scroll_down(S), - noreply(S2); - first -> - S2 = scroll_first(S), - noreply(S2); - prev -> - S2 = scroll_prev(S), - noreply(S2); - next -> - S2 = scroll_next(S), - noreply(S2); - last -> - S2 = scroll_last(S), - noreply(S2); - refresh -> - S2 = refresh_main_window(S), - noreply(S2); - {display_mode, Mode} -> - S2 = change_display_mode(Mode, S), - noreply(S2); - close_all -> - close_all(S); - close_all_others -> - close_all_others(S); - first_all -> - et_collector:multicast(CollectorPid, first), - noreply(S); - prev_all -> - et_collector:multicast(CollectorPid, prev), - noreply(S); - next_all -> - et_collector:multicast(CollectorPid, next), - noreply(S); - last_all -> - et_collector:multicast(CollectorPid, last), - noreply(S); - refresh_all -> - et_collector:multicast(CollectorPid, refresh), - noreply(S); - clear_all -> - et_collector:clear_table(CollectorPid), - et_collector:multicast(CollectorPid, refresh), - noreply(S); - load_all -> - et_collector:start_trace_client(CollectorPid, event_file, "et_viewer.log"), - noreply(S); - save_all -> - et_collector:save_event_file(CollectorPid, - "et_viewer.log", - [existing, write, keep]), - noreply(S); - {open_viewer, Scale} -> - Actors = [A#actor.name || A <- S#state.actors], - open_viewer(Scale, S#state.active_filter, Actors, S), - noreply(S); - _Level when Data == detail_level, integer(hd(Other)), - hd(Other) >= ?detail_level_min, - hd(Other) =< ?detail_level_max -> - S2 = S#state{detail_level = hd(Other)}, - noreply(S2); - _PopupMenuItem when record(Data, filter) -> - open_viewer(S#state.scale, Data#filter.name, [?unknown], S), - noreply(S); - _ -> - click_error(Click, S), - noreply(S) - end; -handle_info({gs, _Obj, destroy,_, _}, S) -> - gs:destroy(S#state.win), - {stop, shutdown, S}; -handle_info({gs, _Obj, buttonpress, _, [_Button, X, Y | _]}, S) -> - S3 = - case y_to_n(Y, S) of - actor -> - %% Actor click - case S#state.actors of - [] -> - S; - _ -> - N = x_to_n(X, S), - A = lists:nth(N, S#state.actors), - S#state{selected_actor = A} - end; - {event, N} -> - %% Event click - List = queue_to_list(S#state.events), - S2 = S#state{events = list_to_queue(List)}, - - Key = lists:nth(N, List), - Pid = S#state.collector_pid, - Fun = fun create_contents_window/2, - case et_collector:iterate(Pid, Key, -1) of - Prev when Prev == Key -> - et_collector:iterate(Pid, first, 1, Fun, S2); - Prev -> - et_collector:iterate(Pid, Prev, 1, Fun, S2) - end - end, - noreply(S3); -handle_info({gs, _Obj, buttonrelease, _, [_Button, X, Y | _]}, S) -> - S2 = - case y_to_n(Y, S) of - actor -> - %% Actor click - case S#state.actors of - [] -> - S; - Actors -> - N = x_to_n(X, S), - New = lists:nth(N, S#state.actors), - Old = S#state.selected_actor, - case New#actor.name == Old#actor.name of - true -> - A = S#state.selected_actor, - toggle_search_for_actor(A#actor.name, S); - false -> - move_actor(Old, New, Actors, S) - end - end; - {event, _N} -> - %% Event click ignored - S - end, - noreply(S2); -handle_info({gs, _Obj, keypress, _, [KeySym, _Keycode, _Shift, _Control | _]} = Key, S) -> - case KeySym of - 'c' -> - close_all_others(S); - 'C' -> - close_all(S); - 'Up' -> - S2 = scroll_up(S), - noreply(S2); - 'Down' -> - S2 = scroll_down(S), - noreply(S2); - 'f' -> - S2 = scroll_first(S), - noreply(S2); - 'p' -> - S2 = scroll_prev(S), - noreply(S2); - 'Prior' -> - S2 = scroll_prev(S), - noreply(S2); - 'n' -> - S2 = scroll_next(S), - noreply(S2); - 'Next' -> - S2 = scroll_next(S), - noreply(S2); - 'l' -> - S2 = scroll_last(S), - noreply(S2); - 'r' -> - S2 = refresh_main_window(S), - noreply(S2); - 'F' -> - et_collector:multicast(S#state.collector_pid, first), - noreply(S); - 'P' -> - et_collector:multicast(S#state.collector_pid, prev), - noreply(S); - 'N' -> - et_collector:multicast(S#state.collector_pid, next), - noreply(S); - 'L' -> - et_collector:multicast(S#state.collector_pid, last), - noreply(S); - 'R' -> - et_collector:multicast(S#state.collector_pid, refresh), - noreply(S); - - 'a' -> - S2 = S#state{display_mode = all}, - S3 = refresh_main_window(S2), - noreply(S3); - - 'equal' -> - Scale = S#state.scale, - Actors = [A#actor.name || A <- S#state.actors], - open_viewer(Scale, S#state.active_filter, Actors, S), - noreply(S); - 'plus' -> - Scale = S#state.scale + 1, - Actors = [A#actor.name || A <- S#state.actors], - open_viewer(Scale, S#state.active_filter, Actors, S), - noreply(S); - 'minus' -> - case S#state.scale of - 1 -> - gs:config(S#state.canvas, beep); - Scale -> - Actors = [A#actor.name || A <- S#state.actors], - open_viewer(Scale - 1, S#state.active_filter, Actors, S) - end, - noreply(S); - 0 -> - case lists:keysearch(collector, #filter.name, S#state.filters) of - {value, F} when record(F, filter) -> - open_viewer(S#state.scale, F#filter.name, [?unknown], S); - false -> - gs:config(S#state.canvas, beep) - end, - noreply(S); - Int when integer(Int), Int > 0, Int =< 9 -> - case catch lists:nth(Int, S#state.filters) of - F when record(F, filter) -> - open_viewer(S#state.scale, F#filter.name, [?unknown], S); - {'EXIT', _} -> - gs:config(S#state.canvas, beep) - end, - noreply(S); - - 'Shift_L' -> - noreply(S); - 'Shift_R' -> - noreply(S); - 'Caps_Lock' -> - noreply(S); - - _ -> - click_error(Key, S), - noreply(S) - end; -handle_info({gs, _Obj,configure, [], [W, H | _]}, S) -> - gs:config(S#state.packer, [{width, W}, {height, H}]), - S2 = S#state{width = W, height = H}, - noreply(S2); -handle_info(timeout, S) -> - Try = - case S#state.display_mode of - {search_actors, reverse, _, _} -> - -10; - _ -> - 10 - end, - if - S#state.is_suspended == true -> - {noreply, S, infinity}; - S#state.max_events == infinity -> - display_more_events(Try, S); - true -> - Needed = S#state.max_events - queue_length(S#state.events), - if - Needed =< 0 -> {noreply, S, infinity}; - Needed > 10 -> display_more_events(Try, S); - Needed =< 10 -> display_more_events(Needed, S) - end - end; - -handle_info({'EXIT', Pid, Reason}, S) -> - if - Pid == S#state.collector_pid -> - unlink(Pid), - gs:destroy(S#state.win), - {stop, Reason, S}; - Pid == S#state.parent_pid -> - unlink(Pid), - gs:destroy(S#state.win), - {stop, Reason, S}; - true -> - noreply(S) - end; -handle_info(Info, S) -> - ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", - [?MODULE, self(), Info, S]), - noreply(S). - -%%---------------------------------------------------------------------- -%% Func: terminate/2 -%% Purpose: Shutdown the server -%% Returns: any (ignored by gen_server) -%%---------------------------------------------------------------------- - -terminate(_Reason, _S) -> - ignore. - -%%---------------------------------------------------------------------- -%% Func: code_change/3 -%% Purpose: Convert process state when code is changed -%% Returns: {ok, NewState} -%%---------------------------------------------------------------------- - -code_change(_OldVsn, S, _Extra) -> - {ok, S}. - -%%%---------------------------------------------------------------------- -%%% Handle suspend/resume -%%%---------------------------------------------------------------------- - -reply(Reply, S) -> - case queue_length(S#state.events) of - _ when S#state.is_suspended == true -> - {reply, Reply, S, infinity}; - _ when S#state.max_events == infinity -> - {reply, Reply, S, 500}; - N when N >= S#state.max_events -> - {reply, Reply, S, infinity}; - _ -> - {reply, Reply, S, 0} - end. - -noreply(S) -> - case queue_length(S#state.events) of - _ when S#state.is_suspended == true -> - {noreply, S, infinity}; - _ when S#state.max_events == infinity -> - {noreply, S, 500}; - N when N >= S#state.max_events -> - {noreply, S, infinity}; - _ -> - {noreply, S, 0} - end. - -do_suspend(S) -> - config_suspend(S#state{is_suspended = true}). - -do_resume(S) -> - config_suspend(S#state{is_suspended = false}). - -config_suspend(S) -> - Suspended = S#state.is_suspended, - gs:config(refresh, [{enable, not Suspended}]), - gs:config(refresh_all, [{enable, not Suspended}]), - gs:config(clear_all, [{enable, not Suspended}]), - S. - -refresh_main_window(S) -> - Pid = S#state.collector_pid, - Key = S#state.first_event, - case et_collector:iterate(Pid, Key, -1) of - Prev when Prev == Key -> - scroll_first(S); - _Prev -> - S2 = S#state{last_event = S#state.first_event}, - clear_canvas(S2) - end. - -scroll_first(S) -> - S2 = S#state{first_event = first, last_event = first}, - clear_canvas(S2). - -scroll_prev(S) -> - Try = - case S#state.max_events of - infinity -> -10; - Max -> -Max - end, - Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, Try), - S2 = S#state{first_event = Key, last_event = Key}, - clear_canvas(S2). - -scroll_next(S) -> - S2 = S#state{first_event = S#state.last_event}, - clear_canvas(S2). - -scroll_up(S) -> - Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, -5), - S2 = S#state{first_event = Key, last_event = Key}, - clear_canvas(S2). - -scroll_down(S) -> - Key = et_collector:iterate(S#state.collector_pid, S#state.first_event, 5), - S2 = S#state{first_event = Key, last_event = Key}, - clear_canvas(S2). - -scroll_last(S) -> - S2 = S#state{first_event = last, last_event = last}, - clear_canvas(S2). - -change_display_mode(Mode, S) -> - case Mode of - all -> - S2 = S#state{display_mode = Mode}, - refresh_main_window(S2); - {search_actors, _Dir, _Key, []} -> - S2 = S#state{display_mode = all}, - refresh_main_window(S2); - {search_actors, _Dir, Key, Actors} when list(Actors) -> - Pid = S#state.collector_pid, - Prev = et_collector:iterate(Pid, Key, -1), - S2 = S#state{first_event = Prev, - last_event = Prev, - display_mode = Mode}, - clear_canvas(S2) - end. - -close_all(S) -> - et_collector:multicast(S#state.collector_pid, close), - timer:sleep(timer:seconds(1)), - spawn(et_collector, stop, [S#state.collector_pid]), - gs:destroy(S#state.win), - {stop, shutdown, S}. - -close_all_others(S) -> - Fun = - fun({{subscriber, Pid}, _}) -> - if - Pid == self() -> - ignore; - true -> - unlink(Pid), - Pid ! {et, close} - end - end, - All = et_collector:dict_match(S#state.collector_pid, - {{subscriber, '_'}, '_'}), - lists:foreach(Fun, All), - noreply(S). - -click_error(Click, S) -> - gs:config(S#state.canvas, beep), - io:format("~p: ignored: ~p~n", [?MODULE, Click]). - -%%%---------------------------------------------------------------------- -%%% Clone viewer -%%%---------------------------------------------------------------------- -open_viewer(Scale, FilterName, Actors, S) -> - Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function} - || F <- S#state.filters], - Options = - [{parent_pid, S#state.parent_pid}, - {title, S#state.title}, - {collector_pid, S#state.collector_pid}, - {is_suspended, S#state.is_suspended}, - {detail_level, S#state.detail_level}, - {active_filter, FilterName}, - {event_order, S#state.event_order}, - {first_event, S#state.first_event}, - {max_events, S#state.max_events}, - {max_actors, S#state.max_actors}, - {hide_actions, S#state.hide_actions}, - {hide_unknown, S#state.hide_unknown}, - {is_suspended, S#state.is_suspended}, - {actors, Actors}, - {scale, Scale}, - {width, S#state.width}, - {height, S#state.height} | Filters], - case start_link(Options) of - {ok, ViewerPid} -> - unlink(ViewerPid), - ok; - {error, Reason} -> - ok = error_logger:format("~p: Failed to start a new window: ~p~n", - [?MODULE, Reason]) - end. - -%%%---------------------------------------------------------------------- -%%% Handle graphics -%%%---------------------------------------------------------------------- - -create_main_window(S) -> - Font = select_font(S#state.scale), - GS = gs:start(), - Name = name_to_string(S#state.active_filter), - Title = case S#state.title of - undefined -> atom_to_list(?MODULE); - Explicit -> name_to_string(Explicit) - end, - WinOpt = [{title, Title ++ " (filter: " ++ Name ++ ")"}, - {configure, true}, - {width, S#state.width}, - {height, S#state.height}], - Win = gs:window(GS, WinOpt), - Bar = gs:menubar(Win, []), - - create_file_menu(Bar), - create_viewer_menu(Bar), - create_collector_menu(Bar), - gs:menubutton(filter_button, Bar, [{label, {text, "Filter"}}]), - create_filter_menu(S#state.active_filter, S#state.filters), - create_help_menu(Bar), - - config_suspend(S), - - PackerOpt = [{packer_x, [{fixed, 5}, {fixed, 40}, {fixed, 40}, - {stretch, 1}, {fixed, 5}]}, - {packer_y, [{fixed, 30}, {fixed, 30}, - {stretch, 1}, {fixed, 30}]}, - {x, 0}, {y, 30}], - Packer = gs:frame(Win, PackerOpt), - gs:checkbutton(suspended, Packer, [{label,{text,"Freeze"}}, - {x, 10}, {y, 0}, - {width, 120}, {align, w}, - {select, S#state.is_suspended}]), - gs:checkbutton(hide_actions, Packer, [{label,{text,"Hide From=To"}}, - {x, 10}, {y, 20}, - {width, 120}, {align, w}, - {select, S#state.hide_actions}]), - gs:checkbutton(hide_unknown, Packer, [{label,{text,"Hide Unknown"}}, - {x, 10}, {y, 40}, - {width, 120}, {align, w}, - {select, S#state.hide_unknown}]), - gs:scale(Packer, [{text,"Detail Level"}, - {range, {?detail_level_min, ?detail_level_max}}, - {orient, horizontal}, - {x, 150}, {y, 0}, {height, 65}, {width, 200}, - {pos, S#state.detail_level}, {data, detail_level}]), - CanvasW = calc_canvas_width(S), - CanvasH = calc_canvas_height(S), - CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom}, - {scrollregion, {2, 2, CanvasW, CanvasH}}], - Canvas = gs:canvas(Packer, CanOpt), - gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]), - gs:config(Packer, [{width, S#state.width}, {height, S#state.height}]), - gs:config(Win, [{map, true}, {keypress, true}]), - S2 = S#state{title = Title, - win = Win, font = Font, packer = Packer, - canvas_width = CanvasW, canvas_height = CanvasH, - canvas = Canvas, - y_pos = ?initial_y * S#state.scale}, - draw_all_actors(S2). - -select_font(Scale) when integer(Scale) -> - case Scale of - 1 -> {courier, 7}; - 2 -> {courier, 10}; - 3 -> {courier, 12}; - 4 -> {courier, 14}; - S -> {courier, S * 4} - end. - -create_file_menu(Bar) -> - Button = gs:menubutton(Bar, [{label, {text, "File"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(close_all, Menu, [{label, {text, "Close Collector and all Viewers (C) "}}]), - gs:menuitem(close_all_others, Menu, [{label, {text, "Close other Viewers, but keep Collector (c)"}}]), - gs:menuitem(close, Menu, [{label, {text, "Close this Viewer, but keep Collector"}}]), - gs:menuitem(Menu, [{itemtype, separator}]), - - gs:menuitem(clear_all, Menu, [{label, {text, "Clear Collector"}}]), - gs:menuitem(load_all, Menu, [{label, {text, "Load Collector from the file \"et_viewer.log\""}}]), - gs:menuitem(save_all, Menu, [{label, {text, "Save Collector to the file \"et_viewer.log\""}}]). - -create_viewer_menu(Bar) -> - Button = gs:menubutton(Bar, [{label, {text, "Viewer"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(Menu, [{label, {text, "Scroll this Viewer"}}, {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(first, Menu, [{label, {text, "First (f)"}}]), - gs:menuitem(prev, Menu, [{label, {text, "Prev (p)"}}]), - gs:menuitem(next, Menu, [{label, {text, "Next (n)"}}]), - gs:menuitem(last, Menu, [{label, {text, "Last (l)"}}]), - gs:menuitem(refresh, Menu, [{label, {text, "Refresh (r)"}}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(up, Menu, [{label, {text, "Up 5 (Up)"}}]), - gs:menuitem(down, Menu, [{label, {text, "Down 5 (Down)"}}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "Search in this Viewer"}}, {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem({mode, all}, Menu, [{label, {text, "Abort search. Display all (a)"}}]). - -create_collector_menu(Bar) -> - Button = gs:menubutton(Bar, [{label, {text, "Collector"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(Menu, [{label, {text, "Scroll all Viewers"}}, {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(first_all, Menu, [{label, {text, "First (F)"}}]), - gs:menuitem(prev_all, Menu, [{label, {text, "Prev (P)"}}]), - gs:menuitem(next_all, Menu, [{label, {text, "Next (N)"}}]), - gs:menuitem(last_all, Menu, [{label, {text, "Last (L)"}}]), - gs:menuitem(refresh_all, Menu, [{label, {text, "Refresh (R)"}}]). - -create_filter_menu(ActiveFilterName, Filters) -> - Menu = gs:menu(filter_menu, filter_button, []), - Item = fun(F, N) when F#filter.name == collector -> - Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]), - gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), - N + 1; - (F, N) -> - Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]), - gs:menuitem(Menu, [{label, {text, Label}}, {data, F}]), - N + 1 - end, - gs:menuitem(Menu, [{label, {text, "Same Filter New Scale"}}, {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters), - Same = lists:concat([pad_string(ActiveFilterName, 20), "(=)"]), - Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+)"]), - Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-)"]), - gs:menuitem(Menu, [{label, {text, Same}}, {data, Filter}]), - gs:menuitem(Menu, [{label, {text, Smaller}}, {data, Filter}]), - gs:menuitem(Menu, [{label, {text, Larger}}, {data, Filter}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "New Filter Same Scale"}}, {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - lists:foldl(Item, 1, Filters). - -create_help_menu(Bar) -> - Button = gs:menubutton(Bar, [{label, {text, "Help"}}]), - Menu = gs:menu(Button, []), - gs:menuitem(Menu, [{label, {text, "Display details of an event"}}, - {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{label, {text, " Single click on the name tag or the arrow (Mouse-1)"}}, - {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "Toggle actor search"}}, - {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{label, {text, " Single click on the name tag (Mouse-1)"}}, - {enable,false}]), - gs:menuitem(Menu, [{itemtype, separator}]), - gs:menuitem(Menu, [{label, {text, "Move actor"}}, - {bg, lightblue}, {enable,false}]), - gs:menuitem(Menu, [{label, {text, " se drag and drop on name tag (Mouse-1)"}}, - {enable,false}]). - -clear_canvas(S) -> - gs:destroy(S#state.canvas), - CanvasW = calc_canvas_width(S), - CanvasH = calc_canvas_height(S), - CanOpt = [{pack_xy, {{2, 4}, 3}}, {vscroll, right}, {hscroll, bottom}, - {scrollregion, {2, 2, CanvasW, CanvasH}}], - Canvas = gs:canvas(S#state.packer, CanOpt), - gs:config(S#state.packer, [{width, S#state.width}, {height, S#state.height}]), - gs:config(Canvas, [{buttonpress, true}, {buttonrelease, true}]), - S2 = S#state{refresh_needed = false, - y_pos = ?initial_y * S#state.scale, - canvas = Canvas, - canvas_width = CanvasW, - canvas_height = CanvasH, - events = queue_new()}, - draw_all_actors(S2). - -calc_canvas_width(S) -> - Min = calc_min_actors(S), - CanvasW = ((2 * ?initial_x) + (Min * ?incr_x)) * S#state.scale, - lists:max([CanvasW, S#state.width - (15 * S#state.scale), S#state.canvas_width]). - -calc_canvas_height(S) -> - Min = calc_min_events(S), - CanvasH = ((2 * ?initial_y) + (Min * ?incr_y)) * S#state.scale, - lists:max([CanvasH, S#state.height - (4 * 30), S#state.canvas_height]). - -calc_min_actors(S) -> - Max = S#state.max_actors, - N = length(S#state.actors), - if - Max == infinity -> - N * 2; - Max < N -> - N; - true -> - Max - end. - -calc_min_events(S) -> - Max = S#state.max_events, - N = queue_length(S#state.events), - if - Max == infinity -> - N * 2; - Max < N -> - N; - true -> - Max - end. - -display_more_events(Try, S) -> - Name = S#state.active_filter, - {value, F} = lists:keysearch(Name, #filter.name, S#state.filters), - FilterFun = F#filter.function, - Fun = fun(Event, State) -> - case catch FilterFun(Event) of - true -> - State2 = ensure_key(Event, State), - opt_display_event(Event, State2); - {true, Event2} -> - State2 = ensure_key(Event2, State), - opt_display_event(Event2, State2); - false -> - ensure_key(Event, State); - Bad -> - Contents = {bad_filter, Name, Bad, Event}, - Event2 = Event#event{contents = Contents, - from = bad_filter, - to = bad_filter}, - State2 = ensure_key(Event2, State), - opt_display_event(Event2, State2) - end - end, - Pid = S#state.collector_pid, - S2 = et_collector:iterate(Pid, S#state.last_event, Try, Fun, S), - case queue_length(S2#state.events) - queue_length(S#state.events) of - Diff when Diff == Try -> - %% Got as much as requested, look for more - %% io:format("Done: ~p~n", [{Try, Diff}]), - {noreply, S2, 0}; - _Diff when S2#state.first_event == S#state.first_event, - S2#state.last_event == S#state.last_event -> - %% Got lesser than requested, wait a while before looking for more - %% io:format("More: ~p~n", [{Try, Diff}]), - {noreply, S2, 500}; - _Diff -> - %% Got lesser than requested, look for more - %% io:format("More2: ~p~n", [{Try, Diff}]), - {noreply, S2, 0} - end. - -ensure_key(E, S) when record(E, event), record(S, state) -> - Key = et_collector:make_key(S#state.event_order, E), - case S#state.first_event of - first -> - S#state{first_event = Key, last_event = Key}; - last -> - S#state{first_event = Key, last_event = Key}; - _ -> - S#state{last_event = Key} - end. - -opt_display_event(E, S) -> - case S#state.display_mode of - all -> - display_event(E, S); - {search_actors, _Dir, _FirstKey, Actors} -> - %% Key = S#state.last_event, - From = select_actor_name(E#event.from, S), - case lists:member(From, Actors) of - true -> - display_event(E, S); - false -> - To = select_actor_name(E#event.to, S), - case lists:member(To, Actors) of - true -> - display_event(E, S); - false -> - S - end - end - end. - -select_actor_name(Name, S) -> - case lists:keymember(Name, #actor.name, S#state.actors) of - true -> Name; - false -> ?unknown - end. - -display_event(E, S) when E#event.detail_level < S#state.detail_level -> - {FromRefresh, From} = ensure_actor(E#event.from, S), - {FromName, FromPos, S2} = From, - {ToRefresh, To} = ensure_actor(E#event.to, S2), - {ToName, ToPos, S3} = To, - if - FromRefresh /= false, ToRefresh /= false -> - Key = S#state.last_event, - refresh_beep(S), - S3#state{refresh_needed = true, - events = queue_in(Key, S3#state.events)}; - FromName == ToName -> - case S#state.hide_actions of - true -> - S3; - false -> - Label = name_to_string(E#event.label), - draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3) - end; - true -> - Label = name_to_string(E#event.label), - draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S3) - end; -display_event(_, S) -> - S. - -draw_named_arrow(Label, FromName, FromPos, ToName, ToPos, S) -> - Key = S#state.last_event, - case S#state.y_pos + (?incr_y * S#state.scale) of - _ when S#state.hide_unknown == true, FromName == ?unknown -> - S; - _ when S#state.hide_unknown == true, ToName == ?unknown -> - S; - Y when Y > S#state.canvas_height -> - refresh_beep(S), - S#state{refresh_needed = true, - events = queue_in(Key, S#state.events)}; - Y -> - S2 = S#state{y_pos = Y, events = queue_in(Key, S#state.events)}, - S3 = draw_arrow(FromPos, ToPos, S2), - draw_label(Label, FromName, ToName, FromPos, ToPos, S3) - end. - -refresh_beep(S) -> - case S#state.refresh_needed of - false -> - gs:config(S#state.canvas, beep), - gs:config(S#state.canvas, beep), - gs:config(S#state.canvas, beep); - true -> - ignore - end. - -draw_arrow(Pos, Pos, S) -> - S; -draw_arrow(FromPos, ToPos, S) -> - Y = S#state.y_pos, - CanOpts = [{coords, [{FromPos , Y}, {ToPos, Y}]}, - {arrow, last},{width, 1}, {fg, black}], - gs:line(S#state.canvas, CanOpts), - S. - -draw_label(Label, FromName, ToName, FromPos, ToPos, S) -> - Colour = - if - FromName == ?unknown, - ToName == ?unknown -> blue; %turquoise; - FromName == ?unknown -> orange; - ToName == ?unknown -> orange; - FromPos == ToPos -> blue; - true -> red - end, - Scale = S#state.scale, - X = lists:min([FromPos, ToPos]) + (6 * Scale), - Y = S#state.y_pos, - write_text(Label, X, Y, Colour, S), - S. - -draw_all_actors(State) -> - Scale = State#state.scale, - Fun = fun(A, X) -> - draw_actor(A, X, State), - X + (?incr_x * Scale) - end, - lists:foldl(Fun, ?initial_x * Scale, State#state.actors), - State. - -%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}} -ensure_actor(Name, S) -> - do_ensure_actor(Name, S, S#state.actors, 0). - -do_ensure_actor(Name, S, [H | _], N) when H#actor.name == Name -> - Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, - {false, {Name, Pos, S}}; -do_ensure_actor(Name, S, [_ | T], N) -> - do_ensure_actor(Name, S, T, N + 1); -do_ensure_actor(Name, S, [], N) -> - %% A brand new actor, let's see if it does fit - Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, - MaxActors = S#state.max_actors, - if - integer(MaxActors), N > MaxActors -> - %% Failed on max_actors limit, put into unknown - %% Assume that unknown always is in actor list - ensure_actor(?unknown, S); - Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) -> - %% New actor does not fit in canvas, refresh needed - A = create_actor(Name), - draw_actor(A, Pos, S), - {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}; - true -> - %% New actor fits in canvas. Draw the new actor. - A = create_actor(Name), - draw_actor(A, Pos, S), - {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}} - end. - -draw_actor(A, LineX, S) -> - Scale = S#state.scale, - TextX = LineX - (5 * Scale), - TextY = ?initial_y * Scale, - LineTopY = TextY + ((?incr_y / 2) * Scale), - LineBotY = S#state.canvas_height - ((?incr_y / 2) * Scale), - Colour = case A#actor.name of - ?unknown -> orange; - _ -> red - end, - write_text(A#actor.string, TextX, TextY, Colour, S), - LineOpt = [{coords, [{LineX, LineTopY}, {LineX, LineBotY}]}, - {width, 1}, {fg, Colour}], - gs:line(S#state.canvas, LineOpt). - -toggle_search_for_actor(ActorName,S) -> - case S#state.display_mode of - all -> - io:format("~p: search for: ~p ++ ~p~n", [?MODULE, [], [ActorName]]), - %% Search for this actor - Key = S#state.first_event, - Actors = [ActorName], - Mode = {search_actors, forward, Key, Actors}, - change_display_mode(Mode, S); - {search_actors, Dir, Key, Actors}-> - Actors2 = - case lists:member(ActorName, Actors) of - true -> - io:format("~p: search for: ~p -- ~p~n", [?MODULE, Actors, [ActorName]]), - %% Remove actor from search list - Actors -- [ActorName]; - false -> - io:format("~p: search for: ~p ++ ~p~n", [?MODULE, Actors, [ActorName]]), - %% Add actor from search list - [ActorName | Actors] - end, - Mode2 = {search_actors, Dir, Key, Actors2}, - change_display_mode(Mode2, S) - end. - -move_actor(From, To, Actors, S) -> - Pos = #actor.name, - ToName = To#actor.name, - FromName = From#actor.name, - ToIx = actor_index(ToName, Pos, Actors), - FromIx = actor_index(FromName, Pos, Actors), - if - FromIx /= 0, ToIx /= 0, ToIx > FromIx -> - Actors2 = lists:keydelete(FromName, Pos, Actors), - Actors3 = insert_actor_after(From, To, Actors2), - S2 = S#state{actors = Actors3}, - refresh_main_window(S2); - FromIx /= 0, ToIx /= 0 -> - Actors2 = lists:keydelete(FromName, Pos, Actors), - Actors3 = insert_actor_before(From, To, Actors2), - S2 = S#state{actors = Actors3}, - refresh_main_window(S2); - true -> - %% Ignore - S - end. - -insert_actor_after(From, To, [H | T]) -> - case To#actor.name == H#actor.name of - true -> [H, From | T]; - false -> [H | insert_actor_after(From, To, T)] - end; -insert_actor_after(_From, _To, []) -> - []. - -insert_actor_before(From, To, [H | T]) -> - case To#actor.name == H#actor.name of - true -> [From, H | T]; - false -> [H | insert_actor_before(From, To, T)] - end; -insert_actor_before(_From, _To, []) -> - []. - -actor_index(_Key, _Pos, []) -> - 0; -actor_index(Key, Pos, [H | T]) -> - case Key == element(Pos, H) of - false -> actor_index(Key, Pos, T) + 1; - true -> 1 - end. - -y_to_n(Y, S) -> - Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)), - N = round(Y2 / ?incr_y - 0.2), - MaxN = queue_length(S#state.events), - if - N =< 0 -> actor; - N > MaxN -> actor; - true -> {event, N} - end. - -x_to_n(X, S) -> - Scale = S#state.scale, - Len = length(S#state.actors), - X2 = X - (?initial_x * Scale), - N = X2 / (?incr_x * Scale), - N2 = trunc(N + 1.5), - if - N2 > Len -> Len; - N2 < 1 -> 1; - true -> N2 - end. - -write_text(Text, X, Y, Colour, S) -> - Opt = [{coords, [{X, Y - (?incr_y * S#state.scale / 2)}]}, - {font, S#state.font}, {fg, Colour}, {text, Text}], - gs:text(S#state.canvas, Opt). - -create_contents_window(Event, S) -> - Options = [{viewer_pid, self()}, - {event, Event}, - {event_order, S#state.event_order}, - {active_filter, S#state.active_filter} - | S#state.filters], - case et_contents_viewer:start_link(Options) of - {ok, _Pid} -> - S; - {error, Reason} -> - ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n", - [?MODULE, self(), Options, Reason]), - S - end. - -%%%---------------------------------------------------------------------- -%%% String padding of actors -%%%---------------------------------------------------------------------- - -create_actor(Name) -> - String = name_to_string(Name), - PaddedString = pad_string(String, 8), - #actor{name = Name, string = PaddedString}. - -name_to_string(Name) -> - case catch io_lib:format("~s", [Name]) of - {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name])); - GoodString -> lists:flatten(GoodString) - end. - -pad_string(Atom, MinLen) when atom(Atom) -> - pad_string(atom_to_list(Atom), MinLen); -pad_string(String, MinLen) when integer(MinLen), MinLen >= 0 -> - Len = length(String), - case Len >= MinLen of - true -> - String; - false -> - String ++ lists:duplicate(MinLen - Len, $ ) - end. - -%%%---------------------------------------------------------------------- -%%% Queue management -%%%---------------------------------------------------------------------- - -queue_new() -> - {0, [], []}. - -queue_in(X, {Size, In, Out}) -> - {Size + 1, [X | In], Out}. - -%% queue_out(Q) -> -%% case Q of -%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}}; -%% {Size, [], []} -> {empty, {Size, [], []}}; -%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)}) -%% end. - -queue_to_list({_Size, [], Out}) -> - Out; -queue_to_list({_Size, In, Out}) -> - Out ++ lists:reverse(In). - -queue_length({Size, _In, _Out}) -> - Size. +call(ViewerPid, Request) -> + gen_server:call(ViewerPid, Request, infinity). -list_to_queue(List) when list(List) -> - {length(List), [], List}. diff --git a/lib/et/src/et_wx_contents_viewer.erl b/lib/et/src/et_wx_contents_viewer.erl new file mode 100644 index 0000000000..8a8d9ef1ee --- /dev/null +++ b/lib/et/src/et_wx_contents_viewer.erl @@ -0,0 +1,700 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2000-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%%---------------------------------------------------------------------- +%% Purpose: Displays details of a trace event +%%---------------------------------------------------------------------- + +-module(et_wx_contents_viewer). + +-behaviour(wx_object). + +%% External exports +-export([start_link/1, + stop/1]). + +%% gen_server callbacks +-export([init/1, terminate/2, code_change/3, + handle_call/3, handle_cast/2, handle_info/2, + handle_event/2]). + +-include("../include/et.hrl"). +-include("et_internal.hrl"). +-include_lib("wx/include/wx.hrl"). + +-record(state, {parent_pid, % Pid of parent process + viewer_pid, % Pid of viewer process + event_order, % Field to be used as primary key + event, % The original event + filtered_event, % Event processed by active filter + active_filter, % Name of the active filter + filters, % List of possible filters + win, % GUI: Frame object + frame, % GUI: Frame object + panel, % GUI: Panel object + width, % GUI: Window width + height, + editor, + menu_data, % GUI: Window height + wx_debug, % GUI: WX debug level + trap_exit}). % trap_exit process flag + +%%%---------------------------------------------------------------------- +%%% Client side +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% start_link(Options) -> {ok, ContentsPid} | {error, Reason} +%% +%% Start a viewer for the event contents as window in GS +%% +%% Options = [option()] +%% +%% option() = +%% +%% {parent_pid, pid()} | % Pid of parent process +%% {viewer_pid, pid()} | % Pid of viewer process +%% {event_order, event_order()} | % Field to be used as primary key +%% {active_filter, atom()} | % Name of the active filter +%% {filter, atom(), fun()} % A named filter fun +%% +%% event_order() = 'trace_ts' | 'event_ts' +%% ContentsPid = pid() +%% Reason = term() +%%---------------------------------------------------------------------- + +start_link(Options) -> + case parse_opt(Options, default_state()) of + {ok, S} -> + try + WxRef = wx_object:start_link(?MODULE, [S], []), + Pid = wx_object:get_pid(WxRef), + if + S#state.parent_pid =/= self() -> + unlink(Pid); + true -> + ignore + end, + {ok, Pid} + catch + error:Reason -> + {error, {'EXIT', Reason, erlang:get_stacktrace()}} + end; + {error, Reason} -> + {error, Reason} + end. + +default_state() -> + #state{parent_pid = self(), + viewer_pid = undefined, + active_filter = ?DEFAULT_FILTER_NAME, + filters = [?DEFAULT_FILTER], + width = 600, + height = 300, + wx_debug = 0, + trap_exit = true}. + +parse_opt([], S) -> + Name = S#state.active_filter, + Filters = S#state.filters, + if + S#state.event =:= undefined -> + {error, {badarg, no_event}}; + is_atom(Name) -> + case lists:keysearch(Name, #filter.name, Filters) of + {value, F} when is_record(F, filter) -> + {ok, S#state{active_filter = Name}}; + false -> + {error, {badarg, {no_such_filter, Name, Filters}}} + end + end; +parse_opt([H | T], S) -> + case H of + {parent_pid, ParentPid} when is_pid(ParentPid); ParentPid =:= undefined -> + parse_opt(T, S#state{parent_pid = ParentPid}); + {viewer_pid, ViewerPid} when is_pid(ViewerPid) -> + parse_opt(T, S#state{viewer_pid = ViewerPid}); + {wx_debug, Level} -> + parse_opt(T, S#state{wx_debug = Level}); + {trap_exit, Bool} when Bool =:= true; Bool =:= false-> + parse_opt(T, S#state{trap_exit = Bool}); + {event_order, trace_ts} -> + parse_opt(T, S#state{event_order = trace_ts}); + {event_order, event_ts} -> + parse_opt(T, S#state{event_order = event_ts}); + {event, Event} when is_record(Event, event) -> + parse_opt(T, S#state{event = Event}); + {active_filter, Name} when is_atom(Name) -> + parse_opt(T, S#state{active_filter = Name}); + F when is_record(F, filter), + is_atom(F#filter.name), + is_function(F#filter.function) -> + Filters = lists:keydelete(F#filter.name, #filter.name, S#state.filters), + Filters2 = lists:keysort(#filter.name, [F | Filters]), + parse_opt(T, S#state{filters = Filters2}); + {width, Width} when is_integer(Width), Width > 0 -> + parse_opt(T, S#state{width = Width}); + {height, Height} when is_integer(Height), Height > 0 -> + parse_opt(T, S#state{height = Height}); + Bad -> + {error, {bad_option, Bad}} + end; +parse_opt(BadList, _S) -> + {error, {bad_option_list, BadList}}. + +%%---------------------------------------------------------------------- +%% stop(ContentsPid) -> ok +%% +%% Stops a contents viewer process +%% +%% ContentsPid = pid() +%%---------------------------------------------------------------------- + +stop(ContentsPid) when is_pid(ContentsPid) -> + Type = process, + MonitorRef = erlang:monitor(Type, ContentsPid), + ContentsPid ! {stop, self()}, + receive + {'DOWN', MonitorRef, Type, ContentsPid, shutdown} -> + ok; + {'DOWN', MonitorRef, Type, ContentsPid, Reason} -> + {error, Reason} + end. + +%% call(Frame, Request) -> +%% wx_object:call(Frame, Request, infinity). + +%%%---------------------------------------------------------------------- +%%% Callback functions from gen_server +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Func: init/1 +%% Returns: {ok, State} | +%% {ok, State, Timeout} | +%% ignore | +%% {stop, Reason} +%%---------------------------------------------------------------------- + +init([S]) when is_record(S, state) -> + process_flag(trap_exit, S#state.trap_exit), + case S#state.parent_pid of + undefined -> ok; + ParentPid -> link(ParentPid) + end, + wx:debug(S#state.wx_debug), + S2 = create_window(S), + {S2#state.frame, S2}. + +%%---------------------------------------------------------------------- +%% Func: handle_call/3 +%% Returns: {reply, Reply, State} | +%% {reply, Reply, State, Timeout} | +%% {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, Reply, State} | (terminate/2 is called) +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_call(Request, From, S) -> + ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", + [?MODULE, self(), Request, From, S]), + Reply = {error, {bad_request, Request}}, + {reply, Reply, S}. + +%%---------------------------------------------------------------------- +%% Func: handle_cast/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_cast(Msg, S) -> + ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", + [?MODULE, self(), Msg, S]), + {noreply, S}. + +%%---------------------------------------------------------------------- +%% Func: handle_event/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_event(#wx{id = Id, + event = #wxCommand{type = command_menu_selected}}, + S) -> + case proplists:get_value(Id, S#state.menu_data) of + undefined -> + ignore; + Data when is_record(Data, filter) -> + F = Data, + ChildState= S#state{active_filter = F#filter.name}, + case wx_object:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid); + _ -> + ignore + end; + {hide, Actors} -> + send_viewer_event(S, {delete_actors, Actors}); + {show, Actors} -> + send_viewer_event(S, {insert_actors, Actors}); + {mode, Mode} -> + send_viewer_event(S, {mode, Mode}); + Nyi -> + ok = error_logger:format("~p: click ~p ignored (nyi)~n", + [?MODULE, Nyi]) + end, + case Id of + ?wxID_EXIT -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; + ?wxID_SAVE -> + Event = S#state.event, + TimeStamp = + case S#state.event_order of + trace_ts -> Event#event.trace_ts; + event_ts -> Event#event.event_ts + end, + FileName = lists:flatten(["et_contents_viewer_", now_to_string(TimeStamp), ".txt"]), + Style = ?wxFD_SAVE bor ?wxFD_OVERWRITE_PROMPT, + Msg = "Select a file to the events to", + case select_file(S#state.frame, Msg, filename:absname(FileName), Style) of + {ok, FileName2} -> + Bin = list_to_binary(event_to_string(Event, S#state.event_order)), + file:write_file(FileName2, Bin); + cancel -> + ok + end, + {noreply, S}; + ?wxID_PRINT -> + Html = wxHtmlEasyPrinting:new([{parentWindow, S#state.win}]), + Text = "
" ++ wxTextCtrl:getValue(S#state.editor) ++ "
", + wxHtmlEasyPrinting:previewText(Html, Text), + {noreply, S}; + _ -> + {noreply, S} + end; +handle_event(#wx{event = #wxKey{rawCode = KeyCode}}, S) -> + case KeyCode of + $c -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, normal, S}; + $f -> + E = S#state.filtered_event, + From = E#event.from, + send_viewer_event(S, {delete_actors, [From]}), + {noreply, S}; + $t -> + E = S#state.filtered_event, + To = E#event.to, + send_viewer_event(S, {delete_actors, [To]}), + {noreply, S}; + $b -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + send_viewer_event(S, {delete_actors, [From, To]}), + {noreply, S}; + + $F -> + E = S#state.filtered_event, + From = E#event.from, + send_viewer_event(S, {insert_actors, [From]}), + {noreply, S}; + $T -> + E = S#state.filtered_event, + To = E#event.to, + send_viewer_event(S, {insert_actors, [To]}), + {noreply, S}; + $B -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + send_viewer_event(S, {insert_actors, [From, To]}), + {noreply, S}; + + $s -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + First = et_collector:make_key(S#state.event_order, E), + Mode = {search_actors, forward, First, [From, To]}, + send_viewer_event(S, {mode, Mode}), + {noreply, S}; + $r -> + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + First = et_collector:make_key(S#state.event_order, E), + Mode = {search_actors, reverse, First, [From, To]}, + send_viewer_event(S, {mode, Mode}), + {noreply, S}; + $a -> + send_viewer_event(S, {mode, all}), + {noreply, S}; + + $0 -> + case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of + {value, F} when is_record(F, filter) -> + ChildState= S#state{active_filter = F#filter.name}, + case wx_object:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid); + _ -> + ignore + end; + false -> + ignore + end, + {noreply, S}; + Int when is_integer(Int), Int > $0, Int =< $9 -> + case catch lists:nth(Int-$0, S#state.filters) of + F when is_record(F, filter) -> + ChildState= S#state{active_filter = F#filter.name}, + case wx_object:start_link(?MODULE, [ChildState], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid); + _ -> + ignore + end; + {'EXIT', _} -> + ignore + end, + {noreply, S}; + + _ -> + io:format("~p: ignored: ~p~n", [?MODULE, KeyCode]), + {noreply, S} + end; +handle_event(#wx{event = #wxClose{}}, S) -> + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; +handle_event(#wx{event = #wxSize{size = {W, H}}}, S) -> + S2 = S#state{width = W, height = H}, + {noreply, S2}; +handle_event(Wx = #wx{}, S) -> + io:format("~p got an unexpected event: ~p\n", [self(), Wx]), + {noreply, S}. + +%%---------------------------------------------------------------------- +%% Func: handle_info/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_info({stop, _From}, S) -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; +handle_info({'EXIT', Pid, Reason}, S) -> + if + Pid =:= S#state.parent_pid -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, Reason, S}; + true -> + {noreply, S} + end; +handle_info(Info, S) -> + ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", + [?MODULE, self(), Info, S]), + {noreply, S}. + +%%---------------------------------------------------------------------- +%% Func: terminate/2 +%% Purpose: Shutdown the server +%% Returns: any (ignored by gen_server) +%%---------------------------------------------------------------------- + +terminate(_Reason, _S) -> + ignore. + +%%---------------------------------------------------------------------- +%% Func: code_change/3 +%% Purpose: Convert process state when code is changed +%% Returns: {ok, NewState} +%%---------------------------------------------------------------------- + +code_change(_OldVsn, S, _Extra) -> + {ok, S}. + +%%%---------------------------------------------------------------------- +%%% Handle graphics +%%%---------------------------------------------------------------------- + +opt_unlink(Pid) -> + if + Pid =:= undefined -> + ignore; + true -> + unlink(Pid) + end. + +create_window(S) -> + H = S#state.height, + W = S#state.width, + Name = S#state.active_filter, + Title = lists:concat([?MODULE, " (filter: ", Name, ")"]), + WinOpt = [{size, {W,H}}], + Frame = wxFrame:new(wx:null(), ?wxID_ANY, Title, WinOpt), + wxFrame:createStatusBar(Frame), + + Panel = wxPanel:new(Frame, []), + Bar = wxMenuBar:new(), + wxFrame:setMenuBar(Frame,Bar), + create_file_menu(Bar), + Editor = wxTextCtrl:new(Panel, ?wxID_ANY, [{style, 0 + bor ?wxDEFAULT + bor ?wxTE_MULTILINE + bor ?wxTE_READONLY + bor ?wxTE_DONTWRAP}]), + Font = wxFont:new(10, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxNORMAL,[]), + TextAttr = wxTextAttr:new(?wxBLACK, [{font, Font}]), + wxTextCtrl:setDefaultStyle(Editor, TextAttr), + Sizer = wxBoxSizer:new(?wxHORIZONTAL), + wxSizer:add(Sizer, Editor, [{flag, ?wxEXPAND}, {proportion, 1}]), + FilteredEvent = config_editor(Editor, S), + S2 = S#state{win = Frame, panel = Panel, filtered_event = FilteredEvent}, + HideData = create_hide_menu(Bar, S2), + SearchData = create_search_menu(Bar, S2), + FilterData = create_filter_menu(Bar, S#state.filters), + wxFrame:connect(Frame, command_menu_selected, []), + wxFrame:connect(Frame, key_up), + wxFrame:connect(Frame, close_window, [{skip,true}]), + wxFrame:setFocus(Frame), + wxPanel:setSizer(Panel, Sizer), + wxFrame:show(Frame), + S2#state{menu_data = HideData++SearchData++FilterData, editor = Editor, frame = Frame}. + +menuitem(Menu, Id, Text, UserData) -> + Item = wxMenu:append(Menu, Id, Text), + {wxMenuItem:getId(Item), UserData}. + +create_file_menu(Bar) -> + Menu = wxMenu:new([]), + wxMenu:append(Menu, ?wxID_SAVE, "Save"), + wxMenu:append(Menu, ?wxID_PRINT,"Print"), + wxMenu:appendSeparator(Menu), + wxMenu:append(Menu, ?wxID_EXIT, "Close"), + wxMenuBar:append(Bar, Menu, "File"). + +create_filter_menu(Bar, Filters) -> + Menu = wxMenu:new([]), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Select Filter"), [{enable, false}]), + wxMenu:appendSeparator(Menu), + Item = fun(F, {N,Acc}) when F#filter.name =:= ?DEFAULT_FILTER_NAME-> + Label = lists:concat([pad_string(F#filter.name, 20, $\ , right), "(0)"]), + MenuItem = menuitem(Menu, ?wxID_ANY, Label, F), + {N + 1, [MenuItem|Acc]}; + (F, {N, Acc}) -> + Name = F#filter.name, + Label = lists:concat([pad_string(Name, 20, $\ , right), "(", N, ")"]), + MenuItem = menuitem(Menu, ?wxID_ANY, Label, F), + {N + 1, [MenuItem|Acc]} + end, + Filters2 = lists:keysort(#filter.name, Filters), + {_,MenuData} = lists:foldl(Item, {1, []}, Filters2), + wxMenuBar:append(Bar, Menu, "Filters"), + MenuData. + +create_hide_menu(Bar, S) -> + Menu = wxMenu:new([]), + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + MenuData = + if + S#state.viewer_pid =:= undefined -> + ignore; + From =:= To -> + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Hide actor in Viewer "), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + Hide = menuitem(Menu, ?wxID_ANY, "From=To (f|t|b)", {hide, [From]}), + wxMenu:appendSeparator(Menu), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Show actor in Viewer "), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + Show = menuitem(Menu, ?wxID_ANY, "From=To (F|T|B)", {show, [From]}), + [Show,Hide]; + true -> + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Hide actor in Viewer "), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + Hide = [menuitem(Menu, ?wxID_ANY, "From (f)", {hide, [From]}), + menuitem(Menu, ?wxID_ANY, "To (t)", {hide, [To]}), + menuitem(Menu, ?wxID_ANY, "Both (b)", {hide, [From, To]})], + wxMenu:appendSeparator(Menu), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Show actor in Viewer "), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + Show = [menuitem(Menu, ?wxID_ANY, "From (F)", {show, [From]}), + menuitem(Menu, ?wxID_ANY, "To (T)", {show, [To]}), + menuitem(Menu, ?wxID_ANY, "Both (B)", {show, [From, To]})], + Show++Hide + end, + wxMenuBar:append(Bar, Menu, "Hide"), + MenuData. + +create_search_menu(Bar, S) -> + Menu = wxMenu:new([]), + E = S#state.filtered_event, + From = E#event.from, + To = E#event.to, + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Search in Viewer "), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + MenuData = + if + S#state.viewer_pid =:= undefined -> + [menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})]; + From =:= To -> + Key = et_collector:make_key(S#state.event_order, E), + ModeS = {search_actors, forward, Key, [From]}, + ModeR = {search_actors, reverse, Key, [From]}, + [menuitem(Menu, ?wxID_ANY, "Forward from this event (s)", {mode, ModeS}), + menuitem(Menu, ?wxID_ANY, "Reverse from this event (r)", {mode, ModeR}), + menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})]; + true -> + Key = et_collector:make_key(S#state.event_order, E), + ModeS = {search_actors, forward, Key, [From, To]}, + ModeR = {search_actors, reverse, Key, [From, To]}, + [menuitem(Menu, ?wxID_ANY, "Forward from this event (s)", {mode, ModeS}), + menuitem(Menu, ?wxID_ANY, "Reverse from this event (r)", {mode, ModeR}), + menuitem(Menu, ?wxID_ANY, "Abort search. Display all (a)", {mode, all})] + end, + wxMenuBar:append(Bar, Menu, "Search"), + MenuData. + +config_editor(Editor, S) -> + Event = S#state.event, + Name = S#state.active_filter, + {value, F} = lists:keysearch(Name, #filter.name, S#state.filters), + FilterFun = F#filter.function, + case catch FilterFun(Event) of + true -> + do_config_editor(Editor, Event, lightblue, S#state.event_order); + {true, Event2} when is_record(Event2, event) -> + do_config_editor(Editor, Event2, lightblue, S#state.event_order); + false -> + do_config_editor(Editor, Event, red, S#state.event_order); + Bad -> + Contents = {bad_filter, Name, Bad}, + BadEvent = Event#event{contents = Contents}, + do_config_editor(Editor, BadEvent, red, S#state.event_order) + end. + +do_config_editor(Editor, Event, _Colour, TsKey) -> + String = event_to_string(Event, TsKey), + wxTextCtrl:appendText(Editor, String), + Event. + +%%%---------------------------------------------------------------------- +%%% String handling +%%%---------------------------------------------------------------------- + +term_to_string(Term) -> + case catch io_lib:format("~s", [Term]) of + {'EXIT', _} -> io_lib:format("~p", [Term]); + GoodString -> GoodString + end. + +now_to_string({Mega, Sec, Micro} = Now) + when is_integer(Mega), is_integer(Sec), is_integer(Micro) -> + {{Y, Mo, D}, {H, Mi, S}} = calendar:now_to_universal_time(Now), + lists:concat([Y, "-", + pad_string(Mo, 2, $0, left), "-", + pad_string(D, 2, $0, left), + "T", + pad_string(H, 2, $0, left), ":", + pad_string(Mi, 2, $0, left), ":", + pad_string(S, 2, $0, left), ".", + Micro]); +now_to_string(Other) -> + term_to_string(Other). + +event_to_string(Event, TsKey) -> + ReportedTs = Event#event.trace_ts, + ParsedTs = Event#event.event_ts, + Deep = + ["DETAIL LEVEL: ", term_to_string(Event#event.detail_level), + "\nLABEL: ", term_to_string(Event#event.label), + case Event#event.from =:= Event#event.to of + true -> + ["\nACTOR: ", term_to_string(Event#event.from)]; + false -> + ["\nFROM: ", term_to_string(Event#event.from), + "\nTO: ", term_to_string(Event#event.to)] + end, + case ReportedTs =:= ParsedTs of + true -> + ["\nPARSED: ", now_to_string(ParsedTs)]; + false -> + case TsKey of + trace_ts -> + ["\nTRACE_TS: ", now_to_string(ReportedTs), + "\nEVENT_TS: ", now_to_string(ParsedTs)]; + event_ts -> + ["\nEVENT_TS: ", now_to_string(ParsedTs), + "\nTRACE_TS: ", now_to_string(ReportedTs)] + end + end, + "\nCONTENTS:\n\n", term_to_string(Event#event.contents)], + lists:flatten(Deep). + +pad_string(Int, MinLen, Char, Dir) when is_integer(Int) -> + pad_string(integer_to_list(Int), MinLen, Char, Dir); +pad_string(Atom, MinLen, Char, Dir) when is_atom(Atom) -> + pad_string(atom_to_list(Atom), MinLen, Char, Dir); +pad_string(String, MinLen, Char, Dir) when is_integer(MinLen), MinLen >= 0 -> + Len = length(String), + case {Len >= MinLen, Dir} of + {true, _} -> + String; + {false, right} -> + String ++ lists:duplicate(MinLen - Len, Char); + {false, left} -> + lists:duplicate(MinLen - Len, Char) ++ String + end. + +send_viewer_event(S, Event) -> + case S#state.viewer_pid of + ViewerPid when is_pid(ViewerPid) -> + ViewerPid ! {et, Event}; + undefined -> + ignore + end. + +select_file(Frame, Message, DefaultFile, Style) -> + Dialog = wxFileDialog:new(Frame, + [{message, Message}, + {defaultDir, filename:dirname(DefaultFile)}, + {defaultFile, filename:basename(DefaultFile)}, + {style, Style}]), + Choice = + case wxMessageDialog:showModal(Dialog) of + ?wxID_CANCEL -> cancel; + ?wxID_OK -> {ok, wxFileDialog:getPath(Dialog)} + end, + wxFileDialog:destroy(Dialog), + Choice. diff --git a/lib/et/src/et_wx_viewer.erl b/lib/et/src/et_wx_viewer.erl new file mode 100644 index 0000000000..1e2677e216 --- /dev/null +++ b/lib/et/src/et_wx_viewer.erl @@ -0,0 +1,2124 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2000-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%%---------------------------------------------------------------------- +%% Purpose: Displays a sequence chart for trace events (messages/actions) +%%---------------------------------------------------------------------- + +-module(et_wx_viewer). + +-behaviour(gen_server). + +%% External exports +-export([start_link/1]). + +%% gen_server callbacks +-export([init/1, terminate/2, code_change/3, + handle_call/3, handle_cast/2, handle_info/2]). + +-include("../include/et.hrl"). +-include("et_internal.hrl"). +-include_lib("wx/include/wx.hrl"). + +-define(unknown, "UNKNOWN"). +-define(initial_x, 10). +-define(incr_x, 60). +-define(initial_y, 15). +-define(incr_y, 15). +-define(detail_level_min, 0). +-define(detail_level_max, 100). + +-record(state, + {parent_pid, % Pid of parent process + auto_shutdown, % Shutdown collector when last subscriber dies + collector_pid, % Pid of collector process + event_order, % Field to be used as primary key + trace_pattern, % Collector trace pattern + active_filter, % Name of the active filter + filters, % List of possible filters + filter_menu, + pending_actor, % Pending actor - move or toggle + first_event, % Key of first event (regardless of visibility) + last_event, % Key of last event (regardless of visibility) + events_per_page, % Maximum number of shown events + events, % Queue containg all event keys (regardless of visibility) + n_events, % Number of events available in the collector + max_actors, % Maximum number of shown actors + actors, % List of known actors + refresh_needed, % Refresh is needed in order to show all actors + detail_level, % Show only events with lesser detail level + hide_actions, % Hide/show events where to == from actor (bool) + hide_actors, % Hide/show events with unknown actor (bool) + display_all, + context, % display | print + title, % GUI: Window title + frame, % GUI: Window object + menubar, % GUI: Menu bar object + packer, % GUI: Packer object + width, % GUI: Window width + height, % GUI: Window height + scale, % GUI: Scaling factor on canvas + normal_font, % GUI: Font to be used on text labels + bold_font, % GUI: Font to be used on text labels + pen, + brush, + print_psdd, + print_d, + canvas_width, % GUI: Canvas width + canvas_height, % GUI: Canvas height + canvas, % GUI: Canvas object + canvas_sizer, + scroll_bar, % GUI: Canvas scroll bar + y_pos, % GUI: Current y position on canvas + menu_data, + checkbox_data, + hide_actions_box, + hide_actors_box, + status_bar, + event_file, + wx_debug, % GUI: WX debug level + trap_exit}). % trap_exit process flag + + +-record(actor, {name, string, include, exclude}). +-record(e, {pos, key, event}). + +%%%---------------------------------------------------------------------- +%%% Client side +%%%---------------------------------------------------------------------- + +start_link(Options) -> + case parse_opt(Options, default_state(), []) of + {ok, S, CollectorOpt} -> + case S#state.collector_pid of + CollectorPid when is_pid(CollectorPid) -> + case gen_server:start_link(?MODULE, [S], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid), + {ok, Pid}; + Other -> + Other + end; + undefined -> + case et_collector:start_link([{auto_shutdown, true} | CollectorOpt]) of + {ok, CollectorPid} -> + S2 = S#state{collector_pid = CollectorPid}, + case gen_server:start_link(?MODULE, [S2], []) of + {ok, Pid} when S#state.parent_pid =/= self() -> + unlink(Pid), + {ok, Pid}; + Other -> + Other + end; + {error, Reason} -> + {error, {et_collector, Reason}} + end + end; + {error, Reason} -> + {error, Reason} + end. + +default_state() -> + #state{parent_pid = self(), + collector_pid = undefined, + n_events = 0, + detail_level = ?detail_level_max, + active_filter = ?DEFAULT_FILTER_NAME, + filters = [?DEFAULT_FILTER], + event_order = trace_ts, + events_per_page = 100, + first_event = first, + last_event = first, + events = queue_new(), + max_actors = 5, + actors = [create_actor(?unknown)], + pending_actor = ?unknown, + hide_actions = false, + hide_actors = false, + display_all = true, + context = display, + refresh_needed = false, + scale = 2, + canvas_height = 0, + canvas_width = 0, + width = 800, + height = 600, + event_file = filename:absname("et_viewer.etrace"), + wx_debug = 0, + trap_exit = true}. + +parse_opt([], S, CollectorOpt) -> + {ok, S, [{parent_pid, S#state.parent_pid} | CollectorOpt]}; +parse_opt([H | T], S, CollectorOpt) -> + case H of + {parent_pid, Parent} when is_pid(Parent); Parent =:= undefined -> + parse_opt(T, S#state{parent_pid = Parent}, CollectorOpt); + {wx_debug, Level} -> + parse_opt(T, S#state{wx_debug = Level}, CollectorOpt); + {trap_exit, Bool} when Bool =:= true; Bool =:= false-> + parse_opt(T, S#state{trap_exit = Bool}, CollectorOpt); + {title, Title} -> + parse_opt(T, S#state{title = name_to_string(Title)}, CollectorOpt); + {detail_level, Level} when is_integer(Level), + Level >= ?detail_level_min, + Level =< ?detail_level_max -> + parse_opt(T, S#state{detail_level = Level}, CollectorOpt); + {detail_level, max} -> + parse_opt(T, S#state{detail_level = ?detail_level_max}, CollectorOpt); + {detail_level, min} -> + parse_opt(T, S#state{detail_level = ?detail_level_min}, CollectorOpt); + {scale, Scale} when is_integer(Scale), Scale > 0 -> + parse_opt(T, S#state{scale = Scale}, CollectorOpt); + {width, W} when is_integer(W), W > 0 -> + parse_opt(T, S#state{width = W, canvas_width = W}, CollectorOpt); + {height, WH} when is_integer(WH), WH > 0 -> + parse_opt(T, S#state{height = WH, canvas_height = WH}, CollectorOpt); + {collector_pid, Pid} when is_pid(Pid) -> + parse_opt(T, S#state{collector_pid = Pid}, CollectorOpt); + {collector_pid, undefined} -> + parse_opt(T, S#state{collector_pid = undefined}, CollectorOpt); + {active_filter, Name} when is_atom(Name) -> + parse_opt(T, S#state{active_filter = Name}, CollectorOpt); + {event_order, trace_ts} -> %% BUGBUG: Verify event_order with collector + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{event_order = trace_ts}, CollectorOpt2); + {event_order, event_ts} -> %% BUGBUG: Verify event_order with collector + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{event_order = event_ts}, CollectorOpt2); + {trace_port, _Port} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_max_queue, _Queue} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_pattern, _Pattern} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_global, _Boolean} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {trace_client, _Client} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {dict_insert, {filter, Name}, Fun} -> + if + is_atom(Name), is_function(Fun) -> + F = #filter{name = Name, function = Fun}, + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{filters = Filters ++ [F]}, CollectorOpt2); + true -> + {error, {bad_option, H}} + end; + {dict_insert, {subscriber, Pid}, _Val} -> + if + is_pid(Pid) -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + true -> + {error, {bad_option, H}} + end; + {dict_insert, _Key, _Val} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {dict_delete, {filter, Name}} -> + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S#state{filters = Filters}, CollectorOpt2); + {dict_delete, _Key} -> + CollectorOpt2 = [H | CollectorOpt], + parse_opt(T, S, CollectorOpt2); + {max_events, _Max} -> + %% Kept for backward compatibility + parse_opt(T, S, CollectorOpt); + {max_actors, Max} when is_integer(Max), Max >= 0 -> + parse_opt(T, S#state{max_actors = Max}, CollectorOpt); + {max_actors, Max} when Max =:= infinity -> + parse_opt(T, S#state{max_actors = Max}, CollectorOpt); + {actors, ActorNames} when is_list(ActorNames) -> + ActorNames2 = + case lists:member(?unknown, ActorNames) of + false -> [?unknown | ActorNames]; + true -> ActorNames + end, + Actors = [create_actor(Name) || Name <- ActorNames2], + parse_opt(T, S#state{actors = Actors}, CollectorOpt); + {include, ActorNames} when is_list(ActorNames) -> + Actors = [opt_create_actor(Name, include, S#state.actors) || Name <- ActorNames], + parse_opt(T, S#state{actors = Actors}, CollectorOpt); + {exclude, ActorNames} when is_list(ActorNames) -> + Actors = [opt_create_actor(Name, exclude, S#state.actors) || Name <- ActorNames], + parse_opt(T, S#state{actors = Actors}, CollectorOpt); + {first_event, _FirstKey} -> + %% NYI + parse_opt(T, S, CollectorOpt); + {hide_actors, Bool} when Bool =:= true; Bool =:= false -> + parse_opt(T, S#state{hide_actors = Bool}, CollectorOpt); + {hide_actions, Bool} when Bool =:= true; Bool =:= false -> + parse_opt(T, S#state{hide_actions = Bool}, CollectorOpt); + {hide_unknown, Bool} when Bool =:= true; Bool =:= false -> + %% Kept for backward compatibility + parse_opt(T, S, CollectorOpt); + {display_mode, _Mode} -> + %% Kept for backward compatibility + parse_opt(T, S, CollectorOpt); + Bad -> + {error, {bad_option, Bad}} + end; +parse_opt(BadList, _S, _CollectorOpt) -> + {error, {bad_option_list, BadList}}. + +do_dict_insert({filter, Name}, Fun, S) when is_atom(Name), is_function(Fun) -> + F = #filter{name = Name, function = Fun}, + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + Filters2 = lists:keysort(#filter.name, [F | Filters]), + S2 = create_filter_menu(S, S#state.active_filter, Filters2), + S2#state{filters = Filters2}; +do_dict_insert(_Key, _Val, S) -> + %%ok = error_logger:format("~p(~p): handle_info({et, {dict_insert, ~p, ~p}})~n", + %% [?MODULE, self(), Key, Val]), + S. + +do_dict_delete({filter, Name}, S) when is_atom(Name), Name =/= S#state.active_filter -> + Filters = lists:keydelete(Name, #filter.name, S#state.filters), + S2 = create_filter_menu(S, S#state.active_filter, Filters), + S2#state{filters = Filters}; +do_dict_delete(_Key, S) -> + %% ok = error_logger:format("~p(~p): handle_info({et, {dict_delete, ~p}})~n", + %% [?MODULE, self(), Key]), + S. + +%%%---------------------------------------------------------------------- +%%% Callback functions from gen_server +%%%---------------------------------------------------------------------- + +%%---------------------------------------------------------------------- +%% Func: init/1 +%% Returns: {ok, State} | +%% {ok, State, Timeout} | +%% ignore | +%% {stop, Reason} +%%---------------------------------------------------------------------- + +init([S]) when is_record(S, state) -> + process_flag(trap_exit, S#state.trap_exit), + case S#state.parent_pid of + undefined -> ok; + ParentPid -> link(ParentPid) + end, + wx:new(), + wx:debug(S#state.wx_debug), + et_collector:dict_insert(S#state.collector_pid, + {subscriber, self()}, + ?MODULE), + S2 = create_main_window(S), + EventsPerPage = events_per_page(S2, S2#state.height), + S3 = revert_main_window(S2#state{events_per_page = EventsPerPage}), + Timeout = timeout(S3), + {ok, S3, Timeout}. + +%%---------------------------------------------------------------------- +%% Func: handle_call/3 +%% Returns: {reply, Reply, State} | +%% {reply, Reply, State, Timeout} | +%% {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, Reply, State} | (terminate/2 is called) +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_call(get_collector_pid, _From, S) -> + Reply = S#state.collector_pid, + reply(Reply, S); +handle_call(stop, _From, S) -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, ok, S}; +handle_call({open_event, N}, _From, S) when is_integer(N), N > 0-> + Reply = do_open_event(S, N), + reply(Reply, S); +handle_call(Request, From, S) -> + ok = error_logger:format("~p(~p): handle_call(~p, ~p, ~p)~n", + [?MODULE, self(), Request, From, S]), + Reply = {error, {bad_request, Request}}, + reply(Reply, S). + +%%---------------------------------------------------------------------- +%% Func: handle_cast/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_cast(Msg, S) -> + ok = error_logger:format("~p(~p): handle_cast(~p, ~p)~n", + [?MODULE, self(), Msg, S]), + noreply(S). + + +%%---------------------------------------------------------------------- +%% Func: handle_info/2 +%% Returns: {noreply, State} | +%% {noreply, State, Timeout} | +%% {stop, Reason, State} (terminate/2 is called) +%%---------------------------------------------------------------------- + +handle_info({et, {more_events, N}}, S) -> + %% io:format("more events: ~p \n", [N]), + S4 = + if + N =:= S#state.n_events -> + S; + true -> + Missing = S#state.events_per_page - queue_length(S#state.events), + if + Missing =:= 0 -> + update_scroll_bar(S#state{n_events = N}); + Missing > 0 -> + OldEvents = queue_to_list(S#state.events), + {S2, NewEvents} = + collect_more_events(S#state{n_events = N}, + S#state.last_event, + Missing), + S3 = replace_events(S2, OldEvents ++ NewEvents), + refresh_main_window(S3) + end + end, + noreply(S4); +handle_info({et, {insert_actors, ActorNames}}, S) when is_list(ActorNames) -> + Fun = fun(N, Actors) -> + case lists:keymember(N, #actor.name, Actors) of + true -> Actors; + false -> Actors ++ [create_actor(N)] + end + end, + Actors = lists:foldl(Fun, S#state.actors, ActorNames), + S2 = refresh_main_window(S#state{actors = Actors}), + noreply(S2); +handle_info({et, {delete_actors, ActorNames}}, S) when is_list(ActorNames)-> + Fun = fun(N, Actors) when N =:= ?unknown -> + Actors; + (N, Actors) -> + lists:keydelete(N, #actor.name, Actors) + end, + Actors = lists:foldl(Fun, S#state.actors, ActorNames), + S2 = refresh_main_window(S#state{actors = Actors}), + noreply(S2); +handle_info({et, {dict_insert, Key, Val}}, S) -> + S2 = do_dict_insert(Key, Val, S), + noreply(S2); +handle_info({et, {dict_delete, Key}}, S) -> + S2 = do_dict_delete(Key, S), + noreply(S2); +handle_info({et, first}, S) -> + S2 = scroll_first(S), + noreply(S2); +handle_info({et, prev}, S) -> + S2 = scroll_prev(S), + noreply(S2); +handle_info({et, next}, S) -> + S2 = scroll_next(S), + noreply(S2); +handle_info({et, last}, S) -> + S2 = scroll_last(S), + noreply(S2); +handle_info({et, refresh}, S) -> + S2 = revert_main_window(S), + noreply(S2); +handle_info({et, {display_mode, _Mode}}, S) -> + %% Kept for backward compatibility + noreply(S); +handle_info({et, close}, S) -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; +handle_info(#wx{id=?wxID_HELP}, S) -> + HelpString = + "Vertical scroll:\n" + "\tUse mouse wheel and up/down arrows to scroll little.\n" + "\tUse page up/down and home/end buttons to scroll more.\n\n" + "Display details of an event:\n" + "\tLeft mouse click on the event label or the arrow.\n\n" + "Highlight actor (toggle):\n" + "\tLeft mouse click on the actor name tag.\n" + "\tThe actor name will be enclosed in square brackets [].\n\n" + "Exclude actor (toggle):\n" + "\tRight mouse click on the actor name tag.\n" + "\tThe actor name will be enclosed in round brackets ().\n\n" + "Move actor:\n" + "\tLeft mouse button drag and drop on actor name tag.\n\n" + "Display all (reset settings for hidden and/or highlighted actors):\n" + "\tPress the 'a' button.", + Dialog = + wxMessageDialog:new(S#state.frame, HelpString, + [{style, 0 + bor ?wxOK + bor ?wxICON_INFORMATION + bor ?wxSTAY_ON_TOP}, + {caption, "Help"}]), + wxMessageDialog:showModal(Dialog), + noreply(S); +handle_info(#wx{id=Id, event = #wxCommand{type = command_menu_selected}}, S=#state{filter_menu = {_,Data}}) -> + CollectorPid = S#state.collector_pid, + case get_value(Id, 3, S#state.menu_data) of + close -> + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; + up -> + S2 = scroll_up(S), + noreply(S2); + down -> + S2 = scroll_down(S), + noreply(S2); + first -> + S2 = scroll_first(S), + noreply(S2); + prev -> + S2 = scroll_prev(S), + noreply(S2); + next -> + S2 = scroll_next(S), + noreply(S2); + last -> + S2 = scroll_last(S), + noreply(S2); + refresh -> + S2 = revert_main_window(S), + noreply(S2); + {display_mode, _Mode} -> + %% Kept for backward compatibility + noreply(S); + display_all -> + S2 = display_all(S), + noreply(S2); + close_all -> + close_all(S); + close_all_others -> + close_all_others(S); + first_all -> + et_collector:multicast(CollectorPid, first), + noreply(S); + prev_all -> + et_collector:multicast(CollectorPid, prev), + noreply(S); + next_all -> + et_collector:multicast(CollectorPid, next), + noreply(S); + last_all -> + et_collector:multicast(CollectorPid, last), + noreply(S); + refresh_all -> + et_collector:multicast(CollectorPid, refresh), + noreply(S); + clear_all -> + et_collector:clear_table(CollectorPid), + et_collector:multicast(CollectorPid, refresh), + noreply(S); + load_all -> + Style = ?wxFD_OPEN bor ?wxFD_OVERWRITE_PROMPT, + Msg = "Select a file to load events from", + S2 = + case select_file(S#state.frame, Msg, S#state.event_file, Style) of + {ok, NewFile} -> + et_collector:start_trace_client(CollectorPid, event_file, NewFile), + S#state{event_file = NewFile}; + cancel -> + S + end, + noreply(S2); + save_all -> + Style = ?wxFD_SAVE bor ?wxFD_OVERWRITE_PROMPT, + Msg = "Select a file to save events to", + S2 = + case select_file(S#state.frame, Msg, S#state.event_file, Style) of + {ok, NewFile} -> + et_collector:save_event_file(CollectorPid, NewFile, [existing, write, keep]), + S#state{event_file = NewFile}; + cancel -> + S + end, + noreply(S2); + print_setup -> + S2 = print_setup(S), + noreply(S2); + print_one_page = Scope -> + S2 = print(S, Scope), + noreply(S2); + print_all_pages = Scope -> + S2 = print(S, Scope), + noreply(S2); + {open_viewer, Scale} -> + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + + _ -> + case get_value(Id, 3, Data) of + {data, F=#filter{}, Scale} -> + open_viewer(S#state.scale+Scale, F#filter.name, [?unknown], S); + {data, F=#filter{}} -> + open_viewer(S#state.scale, F#filter.name, [?unknown], S); + false -> + ok + end, + noreply(S) + end; +handle_info(#wx{event = #wxCommand{type = command_slider_updated, commandInt = Level}}, S) -> + if + Level >= ?detail_level_min, + Level =< ?detail_level_max -> + S2 = S#state{detail_level = Level}, + S3 = revert_main_window(S2), + noreply(S3); + + true -> + noreply(S) + end; +handle_info(#wx{id = Id, event = #wxCommand{type = command_checkbox_clicked, commandInt = Int}}, S) -> + case get_value(Id, 2, S#state.checkbox_data) of + hide_actions -> + case Int of + 1 -> + S2 = S#state{hide_actions = true}, + S3 = revert_main_window(S2), + noreply(S3); + 0 -> + S2 = S#state{hide_actions = false}, + S3 = revert_main_window(S2), + noreply(S3) + end; + hide_actors -> + case Int of + 1 -> + S2 = S#state{hide_actors = true}, + S3 = revert_main_window(S2), + noreply(S3); + 0 -> + S2 = S#state{hide_actors = false}, + S3 = revert_main_window(S2), + noreply(S3) + end; + false -> + noreply(S) + end; +handle_info(#wx{event = #wxMouse{type = left_down, x = X, y = Y}}, S) -> + S3 = + case y_to_n(Y, S) of + actor -> + %% Actor click + case S#state.actors of + [] -> + S; + Actors -> + N = x_to_n(X, S), + A = lists:nth(N, Actors), + S#state{pending_actor = A} + end; + {event, N} -> + %% Event click + do_open_event(S, N), + S + end, + noreply(S3); +handle_info(#wx{event = #wxMouse{type = left_up}}, S) when S#state.pending_actor =:= undefined -> + noreply(S); +handle_info(#wx{event = #wxMouse{type = left_up, x = X, y = Y}}, S) -> + S3 = + case y_to_n(Y, S) of + actor -> + %% Actor click + case S#state.actors of + [] -> + S; + Actors -> + N = x_to_n(X, S), + A = lists:nth(N, Actors), + Pending = S#state.pending_actor, + if + A#actor.name =:= Pending#actor.name -> + %% Toggle include actor + A2 = A#actor{include = not A#actor.include}, + %% io:format("include ~p: ~p -> ~p\n", + %% [A#actor.name, A#actor.include, A2#actor.include]), + Actors2 = lists:keyreplace(A#actor.name, #actor.name, Actors, A2), + DisplayAll = not lists:keymember(true, #actor.include, Actors2), + S2 = S#state{actors = Actors2, display_all = DisplayAll}, + revert_main_window(S2); + true -> + move_actor(Pending, A, Actors, S) + end + end; + {event, _N} -> + %% Event click ignored + S + end, + noreply(S3#state{pending_actor = undefined}); +handle_info(#wx{event = #wxMouse{type = right_up, x = X, y = Y}}, S) -> + S3 = + case y_to_n(Y, S) of + actor -> + %% Actor click + case S#state.actors of + [] -> + S; + Actors -> + %% Toggle exclude actor + N = x_to_n(X, S), + A = lists:nth(N, Actors), + A2 = A#actor{exclude = not A#actor.exclude}, + Actors2 = lists:keyreplace(A#actor.name, #actor.name, Actors, A2), + S2 = S#state{actors = Actors2}, + revert_main_window(S2) + end; + {event, _N} -> + %% Event click ignored + S + end, + noreply(S3#state{pending_actor = undefined}); +handle_info(#wx{event = #wxKey{keyCode = KeyCode, shiftDown = SD}}, S) -> + case KeyCode of + $C when SD =:= true -> + close_all(S); + $c -> + close_all_others(S); + ?WXK_HOME -> + S2 = scroll_first(S), + noreply(S2); + ?WXK_END -> + S2 = scroll_last(S), + noreply(S2); + ?WXK_UP -> + S2 = scroll_up(S), + noreply(S2); + ?WXK_DOWN -> + S2 = scroll_down(S), + noreply(S2); + ?WXK_PAGEUP -> + S2 = scroll_prev(S), + noreply(S2); + ?WXK_PAGEDOWN -> + S2 = scroll_next(S), + noreply(S2); + $F when SD =:= true -> + et_collector:multicast(S#state.collector_pid, first), + noreply(S); + $F -> + S2 = scroll_first(S), + noreply(S2); + $P when SD =:= true -> + et_collector:multicast(S#state.collector_pid, prev), + noreply(S); + $P -> + S2 = scroll_prev(S), + noreply(S2); + $N when SD =:= true -> + et_collector:multicast(S#state.collector_pid, next), + noreply(S); + $N -> + S2 = scroll_next(S), + noreply(S2); + $L when SD =:= true -> + et_collector:multicast(S#state.collector_pid, last), + noreply(S); + $L -> + S2 = scroll_last(S), + noreply(S2); + $R when SD =:= true -> + et_collector:multicast(S#state.collector_pid, refresh), + noreply(S); + $R -> + S2 = revert_main_window(S), + noreply(S2); + $A -> + S2 = display_all(S), + noreply(S2); + $= -> + Scale = S#state.scale, + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + Int when Int =:= $+; Int =:= ?WXK_NUMPAD_ADD -> + Scale = S#state.scale + 1, + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale, S#state.active_filter, Actors, S), + noreply(S); + Int when Int =:= $-; Int =:= ?WXK_NUMPAD_SUBTRACT -> + case S#state.scale of + 1 -> + ignore; + Scale -> + Actors = [A#actor.name || A <- S#state.actors], + open_viewer(Scale - 1, S#state.active_filter, Actors, S) + end, + noreply(S); + $0 -> + case lists:keysearch(?DEFAULT_FILTER_NAME, #filter.name, S#state.filters) of + {value, F} when is_record(F, filter) -> + open_viewer(S#state.scale, F#filter.name, [?unknown], S); + false -> + ok + end, + noreply(S); + Int when is_integer(Int), Int > $0, Int =< $9 -> + case catch lists:nth(Int-$0, S#state.filters) of + F when is_record(F, filter) -> + open_viewer(S#state.scale, F#filter.name, [?unknown], S); + {'EXIT', _} -> + ok + end, + noreply(S); + + _ -> + noreply(S) + end; +handle_info(#wx{event = #wxScroll{type = scroll_changed}} = Wx, S) -> + get_latest_scroll(Wx), + Pos = wxScrollBar:getThumbPosition(S#state.scroll_bar), + {_, LineTopY, LineBotY} = calc_y(S), + Range = LineBotY - LineTopY, + N = round(S#state.n_events * Pos / Range), + Diff = + case N - event_pos(S) of + D when D < 0 -> D - 1; + D -> D + 1 + end, + S2 = scroll_changed(S, Diff), + noreply(S2); +handle_info(timeout, S) -> + noreply(S); +handle_info({'EXIT', Pid, Reason}, S) -> + if + Pid =:= S#state.collector_pid -> + io:format("collector died: ~p\n\n", [Reason]), + wxFrame:destroy(S#state.frame), + {stop, Reason, S}; + Pid =:= S#state.parent_pid -> + wxFrame:destroy(S#state.frame), + {stop, Reason, S}; + true -> + noreply(S) + end; +handle_info(#wx{event = #wxClose{}}, S) -> + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}; +handle_info(#wx{event = #wxMouse{type = mousewheel, wheelRotation = Rot}}, S) when Rot > 0 -> + S2 = scroll_up(S), + noreply(S2); +handle_info(#wx{event = #wxMouse{type = mousewheel, wheelRotation = Rot}}, S) when Rot < 0 -> + S2 = scroll_down(S), + noreply(S2); +handle_info(#wx{event = #wxSize{size = {OldW, OldH}}} = Wx, S) -> + #wx{event = #wxSize{type = size, size = {W, H}}} = get_latest_resize(Wx), + S2 = S#state{width = W, height = H, canvas_width = W, canvas_height = H}, + EventsPerPage = events_per_page(S, H), + Diff = EventsPerPage - S#state.events_per_page, + S6 = + if + OldW =:= W, OldH =:= H, S2#state.events_per_page =:= EventsPerPage -> + S2; + Diff =:= 0 -> + refresh_main_window(S2); + Diff > 0 -> + OldEvents = queue_to_list(S2#state.events), + {S3, NewEvents} = collect_more_events(S2, S2#state.last_event, Diff), + S4 = S3#state{events_per_page = EventsPerPage}, + S5 = replace_events(S4, OldEvents ++ NewEvents), + refresh_main_window(S5); + Diff < 0 -> + OldEvents = queue_to_list(S2#state.events), + RevEvents = delete_n(lists:reverse(OldEvents), abs(Diff)), + S3 = S2#state{events_per_page = EventsPerPage}, + S4 = replace_events(S3, lists:reverse(RevEvents)), + refresh_main_window(S4) + end, + noreply(S6); +handle_info(#wx{event = #wxFocus{}}, S) -> + wxWindow:setFocus(S#state.canvas), % Get keyboard focus + noreply(S); +handle_info(#wx{event = #wxMouse{type = enter_window}}, S) -> + wxWindow:setFocus(S#state.canvas), % Get keyboard focus + noreply(S); +handle_info(#wx{event = #wxPaint{}}, S) -> + S2 = refresh_main_window(S), + noreply(S2); +handle_info(#wx{event = #wxMouse{type = T, x=X,y=Y}}, S) -> + io:format("~p ~p\n", [T, {X,Y}]), + noreply(S); +handle_info(Info, S) -> + ok = error_logger:format("~p(~p): handle_info(~p, ~p)~n", + [?MODULE, self(), Info, S]), + noreply(S). + +%%---------------------------------------------------------------------- +%% Func: terminate/2 +%% Purpose: Shutdown the server +%% Returns: any (ignored by gen_server) +%%---------------------------------------------------------------------- + +terminate(_Reason, _S) -> + ignore. + +%%---------------------------------------------------------------------- +%% Func: code_change/3 +%% Purpose: Convert process state when code is changed +%% Returns: {ok, NewState} +%%---------------------------------------------------------------------- + +code_change(_OldVsn, S, _Extra) -> + {ok, S}. + +%%%---------------------------------------------------------------------- +%%% Handle stuff +%%%---------------------------------------------------------------------- + +reply(Reply, S) -> + Timeout = timeout(S), + {reply, Reply, S, Timeout}. + +noreply(S) -> + Timeout = timeout(S), + {noreply, S, Timeout}. + +timeout(_S) -> + infinity. + +scroll_first(S) -> + EventsPerPage = S#state.events_per_page, + {S2, NewEvents} = + collect_more_events(S, first, EventsPerPage), + S3 = + case NewEvents of + [] -> + S2; + [FirstE | _] -> + S2#state{first_event = FirstE} + end, + S4 = replace_events(S3, NewEvents), + refresh_main_window(S4). + +scroll_last(S) -> + case collect_more_events(S, last, -1) of + {_, []} -> + scroll_first(S); + {S2, NewEvents} -> + [FirstE | _] = NewEvents, + S3 = replace_events(S2#state{first_event = FirstE}, NewEvents), + refresh_main_window(S3) + end. + +scroll_prev(S) -> + scroll_up(S, S#state.events_per_page). + +scroll_next(S) -> + scroll_down(S, S#state.events_per_page). + +scroll_up(S) -> + scroll_up(S, calc_scroll(S)). + +scroll_up(S, Expected) -> + N = queue_length(S#state.events), + EventsPerPage = S#state.events_per_page, + Expected2 = adjust_expected(Expected, N, EventsPerPage), + OldEvents = queue_to_list(S#state.events), + case collect_more_events(S, S#state.first_event, -Expected2) of + {_, []} -> + S; + {S2, NewEvents} -> + NewN = length(NewEvents), + if + N + NewN > EventsPerPage -> + RevAllEvents = lists:reverse(OldEvents, lists:reverse(NewEvents)), + TooMany = N + NewN - EventsPerPage, + case delete_n(RevAllEvents, TooMany) of + [] -> + S; + [LastE | _] = RevEvents -> + Events = lists:reverse(RevEvents), + S3 = replace_events(S2#state{last_event = LastE}, Events), + refresh_main_window(S3) + end; + true -> + Events = NewEvents ++ OldEvents, + LastE = lists:last(Events), + S3 = replace_events(S2#state{last_event = LastE}, Events), + refresh_main_window(S3) + end + end. + +scroll_down(S) -> + scroll_down(S, calc_scroll(S)). + +scroll_down(S, Expected) -> + N = queue_length(S#state.events), + EventsPerPage = S#state.events_per_page, + Expected2 = adjust_expected(Expected, N, EventsPerPage), + OldEvents = queue_to_list(S#state.events), + case collect_more_events(S, S#state.last_event, Expected2) of + {_, []} -> + case collect_more_events(S, S#state.first_event, N - EventsPerPage) of + {_, []} -> + S; + {S2, NewEvents} -> + Events = NewEvents ++ OldEvents, + [FirstE | _] = Events, + S3 = replace_events(S2#state{first_event = FirstE}, Events), + refresh_main_window(S3) + end; + {S2, NewEvents} -> + AllEvents = OldEvents ++ NewEvents, + case delete_n(AllEvents, length(NewEvents)) of + [] -> + scroll_first(S); + Events -> + [FirstE | _] = Events, + S3 = replace_events(S2#state{first_event = FirstE}, Events), + refresh_main_window(S3) + end + end. + +scroll_changed(S, Expected) -> + if + Expected =:= 0 -> + refresh_main_window(S); + Expected < 0 -> + %% Up + OldPos = event_pos(S), + NewPos = lists:max([OldPos + Expected, 0]), + case S#state.first_event of + #e{key = Key, pos = OldPos} -> + jump_up(S, Key, OldPos, NewPos); + first -> + scroll_first(S); + last -> + scroll_last(S) + end; + true -> + %% Down + OldPos = event_pos(S), + NewPos = lists:min([OldPos + Expected, S#state.n_events]), + case S#state.first_event of + #e{key = Key, pos = OldPos} -> + jump_down(S, Key, OldPos, NewPos); + first = Key -> + jump_down(S, Key, 0, NewPos); + last -> + scroll_last(S) + end + end. + +jump_up(S, OldKey, OldPos, NewPos) -> + Try = NewPos - OldPos, + Order = S#state.event_order, + Fun = fun(Event, #e{pos = P}) when P >= NewPos -> + Key = et_collector:make_key(Order, Event), + #e{event = Event, key = Key, pos = P - 1}; + (_, Acc) -> + Acc + end, + PrevE = et_collector:iterate(S#state.collector_pid, + OldKey, + Try, + Fun, + #e{key = OldKey, pos = OldPos}), + case collect_more_events(S, PrevE, S#state.events_per_page) of + {_, []} -> + S; + {S2, Events} -> + [FirstE | _] = Events, + S3 = replace_events(S2#state{first_event = FirstE}, Events), + refresh_main_window(S3) + end. + +jump_down(S, OldKey, OldPos, NewPos) -> + Try = NewPos - OldPos, + Order = S#state.event_order, + Fun = fun(Event, #e{pos = P}) when P < NewPos -> + Key = et_collector:make_key(Order, Event), + #e{event = Event, key = Key, pos = P + 1}; + (_, Acc) -> + Acc + end, + PrevE = et_collector:iterate(S#state.collector_pid, + OldKey, + Try, + Fun, + #e{key = OldKey, pos = OldPos}), + case collect_more_events(S, PrevE, S#state.events_per_page) of + {_, []} -> + S; + {S2, Events} -> + [FirstE | _] = Events, + S3 = replace_events(S2#state{first_event = FirstE}, Events), + refresh_main_window(S3) + end. + +adjust_expected(Expected, N, EventsPerPage) -> + if + N < EventsPerPage -> + EventsPerPage - N; + Expected < EventsPerPage -> + Expected; + true -> + EventsPerPage + end. + +calc_scroll(S) -> + lists:max([S#state.events_per_page div 3, 1]). + +revert_main_window(S) -> + {S2, Events} = revert(S), + S3 = replace_events(S2, Events), + refresh_main_window(S3). + +revert(S) -> + EventsPerPage = S#state.events_per_page, + %% Find previous event + case collect_more_events(S, S#state.first_event, -1) of + {_, []} -> + collect_more_events(S, first, EventsPerPage); + {S2, [_PrevEvent]} -> + collect_more_events(S, S2#state.first_event, EventsPerPage) + end. + +delete_n(List, 0) -> + List; +delete_n([], _) -> + []; +delete_n([_ | Tail], N) when N > 0 -> + delete_n(Tail, N - 1). + +pick_n(Rest, 0, Acc) -> + {lists:reverse(Acc), Rest}; +pick_n([], _N, Acc) -> + {lists:reverse(Acc), []}; +pick_n([Head | Tail], N, Acc) when N > 0 -> + pick_n(Tail, N - 1, [Head | Acc]). + +close_all(S) -> + close_all_others(S), + wxFrame:destroy(S#state.frame), + opt_unlink(S#state.parent_pid), + {stop, shutdown, S}. + +close_all_others(S) -> + Fun = + fun({{subscriber, Pid}, _}) -> + if + Pid =:= self() -> + ignore; + true -> + unlink(Pid), + Pid ! {et, close} + end + end, + All = et_collector:dict_match(S#state.collector_pid, + {{subscriber, '_'}, '_'}), + lists:foreach(Fun, All), + noreply(S). + +opt_unlink(Pid) -> + if + Pid =:= undefined -> + ignore; + true -> + unlink(Pid) + end. + +%%%---------------------------------------------------------------------- +%%% Clone viewer +%%%---------------------------------------------------------------------- + +open_viewer(Scale, FilterName, Actors, S) -> + Filters = [{dict_insert, {filter, F#filter.name}, F#filter.function} + || F <- S#state.filters], + Options = + [{parent_pid, S#state.parent_pid}, + {title, S#state.title}, + {collector_pid, S#state.collector_pid}, + {detail_level, S#state.detail_level}, + {active_filter, FilterName}, + {event_order, S#state.event_order}, + {first_event, S#state.first_event}, + {max_actors, S#state.max_actors}, + {hide_actions, S#state.hide_actions}, + {hide_actors, S#state.hide_actors}, + {actors, Actors}, + {scale, Scale}, + {width, S#state.width}, + {height, S#state.height} | Filters], + case start_link(Options) of + {ok, _ViewerPid} -> + %% unlink(ViewerPid), + ok; + {error, Reason} -> + ok = error_logger:format("~p: Failed to start a new window: ~p~n", + [?MODULE, Reason]) + end. + +%%%---------------------------------------------------------------------- +%%% Handle graphics +%%%---------------------------------------------------------------------- + +create_main_window(S) -> + {NormalFont, BoldFont} = select_fonts(S#state.scale), + Name = name_to_string(S#state.active_filter), + Title = case S#state.title of + undefined -> atom_to_list(?MODULE); + Explicit -> name_to_string(Explicit) + end, + Frame = wxFrame:new(wx:null(), + ?wxID_ANY, + Title ++ " (filter: " ++ Name ++ ")", + [{size, {S#state.width, S#state.height}}]), + StatusBar = wxFrame:createStatusBar(Frame), + + Panel = wxPanel:new(Frame, []), + Bar = wxMenuBar:new(), + wxFrame:setMenuBar(Frame,Bar), + MainSizer = wxBoxSizer:new(?wxVERTICAL), + + MenuData = lists:flatten([create_file_menu(Bar), + create_viewer_menu(Bar), + create_collector_menu(Bar)]), + FilterMenu = wxMenu:new([]), + S2 = create_filter_menu(S#state{filter_menu = {FilterMenu,[]}}, + S#state.active_filter, + S#state.filters), + wxMenuBar:append(Bar, FilterMenu, "Filters and scaling"), + create_help_menu(Bar), + + OptSizer = wxBoxSizer:new(?wxHORIZONTAL), + CheckSizer = wxBoxSizer:new(?wxVERTICAL), + HideActions = wxCheckBox:new(Panel, ?wxID_ANY, "Hide From=To"), + wxCheckBox:setValue(HideActions, S#state.hide_actions), + HideActors = wxCheckBox:new(Panel, ?wxID_ANY, "Hide (excluded actors)"), + wxCheckBox:setValue(HideActors, S#state.hide_actors), + CheckBoxData = [{wxCheckBox:getId(HideActions), hide_actions}, + {wxCheckBox:getId(HideActors), hide_actors}], + wxPanel:connect(Panel, command_checkbox_clicked), + wxSizer:add(CheckSizer, HideActions), + wxSizer:add(CheckSizer,HideActors), + wxSizer:add(OptSizer, CheckSizer, [{border, 10}, {flag, ?wxALL}]), + DetailLevelBox = wxStaticBoxSizer:new(?wxHORIZONTAL, + Panel, + [{label, "Detail level"}]), + DetailLevel = wxSlider:new(Panel, ?wxID_ANY, + S#state.detail_level, + ?detail_level_min, + ?detail_level_max, + [{style, ?wxSL_LABELS}, + {size, {200,-1}}]), + wxStatusBar:setStatusText(StatusBar, where_text(S)), + wxFrame:connect(Frame, command_slider_updated), + wxSizer:add(DetailLevelBox, DetailLevel), + wxSizer:add(OptSizer, DetailLevelBox, [{border, 10}, {flag, ?wxALL}]), + wxSizer:addStretchSpacer(OptSizer), + wxSizer:add(MainSizer, OptSizer), + wxSizer:add(MainSizer, + wxStaticLine:new(Panel, [{style, ?wxLI_HORIZONTAL}]), + [{flag, ?wxEXPAND}]), + + CanvasSizer = wxBoxSizer:new(?wxHORIZONTAL), + Canvas = wxPanel:new(Panel, []), + {CanvasW,CanvasH} = wxPanel:getSize(Canvas), + ScrollBar = wxScrollBar:new(Panel, ?wxID_ANY, [{style, ?wxSB_VERTICAL}]), + + wxSizer:add(CanvasSizer, Canvas, [{flag, ?wxEXPAND}, {proportion, 1}]), + wxSizer:add(CanvasSizer, ScrollBar, [{flag, ?wxEXPAND}]), + wxSizer:add(MainSizer, CanvasSizer, [{flag, ?wxEXPAND}, {proportion, 1}]), + wxPanel:connect(Canvas, left_down), + wxPanel:connect(Canvas, left_up), + wxPanel:connect(Canvas, right_up), + wxPanel:connect(Canvas, size), + wxPanel:connect(Canvas, paint), + wxPanel:connect(Canvas, key_down), + wxPanel:connect(Canvas, kill_focus), + wxPanel:connect(Canvas, enter_window, [{skip, true}]), + wxFrame:connect(Frame, command_menu_selected), + wxFrame:connect(Frame, close_window), + wxFrame:connect(ScrollBar, scroll_changed), + wxPanel:setSize(Panel, {S#state.width, S#state.height}), + wxPanel:setSizer(Panel, MainSizer), + wxFrame:show(Frame), + wxPanel:setFocus(Canvas), + wxPanel:connect(Canvas, mousewheel), + + S3 = S2#state{title = Title, + frame = Frame, packer = Panel, + normal_font = NormalFont, bold_font = BoldFont, + canvas_width = CanvasW, canvas_height = CanvasH, + canvas = Canvas, + canvas_sizer = CanvasSizer, + scroll_bar = ScrollBar, + y_pos = ?initial_y * S#state.scale, + pen = wxPen:new(), + brush = wxBrush:new(), + print_d = undefined, + print_psdd = undefined, + menu_data = MenuData, + checkbox_data = CheckBoxData, + hide_actions_box = HideActions, + hide_actors_box = HideActors, + status_bar = StatusBar}, + DC = wxClientDC:new(Canvas), + S4 = draw_all_actors(S3, DC), + wxClientDC:destroy(DC), + S4. + +where_text(#state{n_events = N} = S) -> + Pos = event_pos(S), + lists:concat([Pos, " (", N, ")"]). + +event_pos(#state{first_event = E, events = Events, n_events = Last}) -> + case E of + #e{pos = Pos} -> + Pos; + first -> + case queue_length(Events) of + 0 -> + 0; + _ -> + 1 + end; + last -> + Last + end. + +init_printers(#state{print_d = undefined, print_psdd = undefined} = S) -> + PD = wxPrintData:new(), + PSDD = wxPageSetupDialogData:new(PD), + wxPrintData:setPaperId(PD, ?wxPAPER_A4), + wxPageSetupDialogData:setMarginTopLeft(PSDD, {15,15}), + wxPageSetupDialogData:setMarginBottomRight(PSDD, {15,15}), + S#state{print_d = PD, print_psdd = PSDD}; +init_printers(#state{} = S) -> + S. + +select_fonts(Scale) when is_integer(Scale) -> + Size = + case Scale of + 1 -> 5; + 2 -> 10; + 3 -> 14; + 4 -> 20; + S -> S*6 + end, + {wxFont:new(Size, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxNORMAL,[]), + wxFont:new(Size, ?wxFONTFAMILY_TELETYPE, ?wxNORMAL, ?wxBOLD,[])}. + +get_value(Key, Pos, TupleList) when is_list(TupleList)-> + case lists:keysearch(Key, 1, TupleList) of + {value, Tuple} when is_tuple(Tuple)-> + element(Pos, Tuple); + false -> + false + end. + +menuitem(Menu, Id, Text, UserData) -> + Item = wxMenu:append(Menu, Id, Text), + {wxMenuItem:getId(Item), Item, UserData}. + +create_file_menu(Bar) -> + Menu = wxMenu:new([]), + Data = [ + menuitem(Menu, ?wxID_ANY, "Clear all events in the Collector", clear_all), + menuitem(Menu, ?wxID_ANY, "Load events to the Collector from file", load_all), + menuitem(Menu, ?wxID_ANY, "Save all events in the Collector to file", save_all), + + menuitem(Menu, ?wxID_PRINT_SETUP, "Print setup", print_setup), + menuitem(Menu, ?wxID_ANY, "Print current page", print_one_page), + menuitem(Menu, ?wxID_PRINT, "Print all pages", print_all_pages), + + menuitem(Menu, ?wxID_ANY, "Close this Viewer", close), + menuitem(Menu, ?wxID_ANY, "Close all other Viewers, but this (c)", close_all_others), + menuitem(Menu, ?wxID_ANY, "Close all Viewers and the Collector) (C) ", close_all) + ], + wxMenu:insertSeparator(Menu, 3), + wxMenu:insertSeparator(Menu, 7), + wxMenuBar:append(Bar, Menu, "File"), + Data. + +create_viewer_menu(Bar) -> + Menu = wxMenu:new([]), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Scroll this Viewer"), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + D1 = [ + menuitem(Menu, ?wxID_ANY, "First (f)", first), + menuitem(Menu, ?wxID_ANY, "Last (l)", last), + menuitem(Menu, ?wxID_ANY, "Prev (p)", prev), + menuitem(Menu, ?wxID_ANY, "Next (n)", next), + menuitem(Menu, ?wxID_ANY, "Refresh (r)", refresh) + ], + wxMenu:appendSeparator(Menu), + D2 = [ + menuitem(Menu, ?wxID_ANY, "Up 5 (Up)", up), + menuitem(Menu, ?wxID_ANY, "Down 5 (Down)", down) + ], + wxMenu:appendSeparator(Menu), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Actor visibility in this Viewer"), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + D3 = [menuitem(Menu, ?wxID_ANY, "Display all actors (a)", display_all)], + wxMenuBar:append(Bar, Menu, "Viewer"), + [D1,D2,D3]. + +create_collector_menu(Bar) -> + Menu = wxMenu:new([]), + wxMenuItem:enable(wxMenu:append(Menu, ?wxID_ANY, "Scroll all Viewers"), + [{enable, false}]), + wxMenu:appendSeparator(Menu), + Data = [ + menuitem(Menu, ?wxID_ANY, "First (F)", first_all), + menuitem(Menu, ?wxID_ANY, "Last (L)", last_all), + menuitem(Menu, ?wxID_ANY, "Prev (P)", prev_all), + menuitem(Menu, ?wxID_ANY, "Next (N)", next_all), + menuitem(Menu, ?wxID_ANY, "Refresh (R)", refresh_all) + ], + wxMenuBar:append(Bar, Menu, "Collector"), + Data. + +create_filter_menu(S=#state{filter_menu = {Menu,Data}}, ActiveFilterName, Filters) -> + wx:foreach(fun({_,I,_}) -> + wxMenu:delete(Menu,I); + (I) -> + try + wxMenu:delete(Menu,I) + catch + _:Reason -> + io:format("Could not delete item: ~p, because ~p.\n", [I, Reason]) + end + end, + Data), + Item = fun(F, {N, Acc}) when F#filter.name =:= all -> + Label = lists:concat([pad_string(F#filter.name, 20), "(0)"]), + {N+1, [menuitem(Menu, ?wxID_ANY, Label, {data, F})|Acc]}; + (F, {N, Acc}) -> + Label = lists:concat([pad_string(F#filter.name, 20), "(", N, ")"]), + {N+1, [menuitem(Menu, ?wxID_ANY, Label, {data, F})|Acc]} + end, + D1 = [I1 = wxMenu:append(Menu, ?wxID_ANY, "Same Filter New Scale"), + wxMenu:appendSeparator(Menu)], + wxMenuItem:enable(I1, [{enable,false}]), + {value, Filter} = lists:keysearch(ActiveFilterName, #filter.name, Filters), + Same = lists:concat([pad_string(ActiveFilterName, 20), "(=) same scale"]), + Larger = lists:concat([pad_string(ActiveFilterName, 20), "(+) bigger scale"]), + Smaller = lists:concat([pad_string(ActiveFilterName, 20), "(-) smaller scale"]), + D2 = [ + menuitem(Menu, ?wxID_ANY, Same, {data, Filter, 0}), + menuitem(Menu, ?wxID_ANY, Smaller, {data, Filter, -1}), + menuitem(Menu, ?wxID_ANY, Larger, {data, Filter, 1}), + wxMenu:appendSeparator(Menu), + I2 = wxMenu:append(Menu, ?wxID_ANY, "New Filter Same Scale"), + wxMenu:appendSeparator(Menu) + ], + wxMenuItem:enable(I2, [{enable,false}]), + {_,D3} = lists:foldl(Item, {1,[]}, Filters), + S#state{filter_menu = {Menu, lists:flatten([D1,D2,D3])}}. + +create_help_menu(Bar) -> + Menu = wxMenu:new([]), + menuitem(Menu, ?wxID_HELP, "Info", help), + wxMenuBar:append(Bar, Menu, "Help"). + +clear_canvas(S) -> + DC = wxClientDC:new(S#state.canvas), + wxDC:clear(DC), + {CanvasW, CanvasH} = wxPanel:getSize(S#state.canvas), + wxSizer:recalcSizes(S#state.canvas_sizer), + S2 = S#state{refresh_needed = false, + y_pos = ?initial_y * S#state.scale, + canvas_width = CanvasW, + canvas_height = CanvasH, + events = queue_new()}, + S3 = draw_all_actors(S2, DC), + wxClientDC:destroy(DC), + S3. + +replace_events(S, []) -> + S#state{first_event = first, + last_event = first, + events = queue_new()}; +replace_events(S, Events) -> + Queue = lists:foldl(fun(E, Q) -> queue_in(E, Q) end, queue_new(), Events), + S#state{events = Queue}. + +refresh_main_window(S) -> + wx:batch(fun() -> + S2 = clear_canvas(S), + S3 = update_scroll_bar(S2), + display_events(S3, queue_to_list(S#state.events)) + end). + +display_events(S, []) -> + S; +display_events(S, Events) -> + DC = wxClientDC:new(S#state.canvas), + S2 = lists:foldl(fun(E, State) -> display_event(E, State, DC) end, S, Events), + wxClientDC:destroy(DC), + S2. + +collect_more_events(S, PrevKey = first, Try) -> + PrevE = #e{event = undefined, key = PrevKey, pos = 0}, + S2 = S#state{first_event = PrevE, last_event = PrevE}, + do_collect_more_events(S2, Try, PrevE, []); +collect_more_events(S, PrevKey = last, Try) -> + PrevE = #e{event = undefined, key = PrevKey, pos = S#state.n_events}, + S2 = S#state{first_event = PrevE, last_event = PrevE}, + do_collect_more_events(S2, Try, PrevE, []); +collect_more_events(S, #e{} = PrevE, Try) -> + do_collect_more_events(S, Try, PrevE, []). + +do_collect_more_events(#state{collector_pid = Collector, + event_order = Order, + active_filter = Active, + filters = Filters} = S, + Try, + PrevE, + Acc) -> + Incr = + if + Try < 0 -> -1; + true -> 1 + end, + PrevKey = PrevE#e.key, + {value, #filter{function = FilterFun}} = + lists:keysearch(Active, #filter.name, Filters), + {_S, _Incr, _Order, _Active, _FilterFun, LastE, NewEvents} = + et_collector:iterate(Collector, + PrevKey, + Try, + fun collect_event/2, + {S, Incr, Order, Active, FilterFun, PrevE, []}), + Expected = abs(Try), + Actual = length(NewEvents), + Missing = Expected - Actual, + {S2, Acc2, Try2} = + if + Try < 0 -> + {S#state{first_event = LastE}, NewEvents ++ Acc, -Missing}; + true -> + TmpEvents = lists:reverse(NewEvents), + {S#state{last_event = LastE}, Acc ++ TmpEvents, Missing} + end, + if + Missing =/= 0, PrevKey =/= LastE#e.key -> + do_collect_more_events(S2, Try2, LastE, Acc2); + true -> + {S2, Acc2} + end. + +collect_event(Event, {S, Incr, Order, Active, FilterFun, #e{pos = PrevPos}, Events}) -> + Key = et_collector:make_key(Order, Event), + E = #e{event = Event, key = Key, pos = PrevPos + Incr}, + {LastE, Events2} = + case catch FilterFun(Event) of + true -> + case is_hidden(Event#event.from, Event#event.to, S) of + true -> + {E, Events}; + false -> + {E, [E | Events]} + end; + {true, Event2} -> + Key2 = et_collector:make_key(Order, Event2), + E2 = E#e{event = Event2, key = Key2}, + case is_hidden(Event2#event.from, Event2#event.to, S) of + true -> + {E2, Events}; + false -> + {E2, [E2 | Events]} + end; + false -> + {E, Events}; + Bad -> + Contents = {bad_filter, S#state.active_filter, Bad, Event}, + Event2 = Event#event{contents = Contents, + from = bad_filter, + to = bad_filter}, + E2 = E#e{event = Event2}, + {E2, [E2 | Events]} + end, + {S, Incr, Order, Active, FilterFun, LastE, Events2}. + +display_event(#e{event = Event} = E, S, DC) + when Event#event.detail_level < S#state.detail_level -> + {FromRefresh, From} = ensure_actor(Event#event.from, S, DC), + {FromName, FromPos, S2} = From, + {ToRefresh, To} = ensure_actor(Event#event.to, S2, DC), + {ToName, ToPos, S3} = To, + S4 = + if + FromRefresh =/= false, ToRefresh =/= false -> + S3#state{refresh_needed = true, + events = queue_in(E, S3#state.events)}; + FromName =:= ToName -> + case S#state.hide_actions of + true -> + S3; + false -> + Label = name_to_string(Event#event.label), + draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S3, DC) + end; + true -> + Label = name_to_string(Event#event.label), + draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S3, DC) + end, + S4; +display_event(#e{}, S, _DC) -> + S. + +draw_named_arrow(Label, FromName, ToName, FromPos, ToPos, E, S, DC) -> + case S#state.y_pos + (?incr_y * S#state.scale) of + _ when S#state.hide_actors =:= true, FromName =:= ?unknown -> + S; + _ when S#state.hide_actors =:= true, ToName =:= ?unknown -> + S; + Y when Y > S#state.canvas_height -> + S#state{refresh_needed = true, + events = queue_in(E, S#state.events)}; + Y -> + S2 = S#state{y_pos = Y, events = queue_in(E, S#state.events)}, + S3 = draw_arrow(FromPos, ToPos, S2, DC), + draw_label(Label, FromName, ToName, FromPos, ToPos, S3, DC) + end. + +draw_arrow(Pos, Pos, S, _DC) -> + S; +draw_arrow(FromPos, ToPos, S, DC) -> + Y = S#state.y_pos, + wxPen:setColour(S#state.pen, ?wxBLACK), + wxDC:setPen(DC, S#state.pen), + wxDC:drawLine(DC, {FromPos , Y}, {ToPos, Y}), + + %% Draw arrow head + Radians = calc_angle({FromPos, Y}, {ToPos, Y}), + Len = 5, + Radians2 = Radians + 3.665191429188092, + Radians3 = Radians + 2.617993877991494, + {X3, Y3} = calc_point({ToPos, Y}, Len, Radians2), + {X4, Y4} = calc_point({ToPos, Y}, Len, Radians3), + Points = [{round(ToPos), round(Y)}, + {round(X3), round(Y3)}, + {round(X4), round(Y4)}], + wxBrush:setColour(S#state.brush, ?wxBLACK), + wxDC:setBrush(DC, S#state.brush), + wxDC:drawPolygon(DC, Points, []), + S. + + %% Calclulate angle in radians for a line between two points +calc_angle({X1, Y1}, {X2, Y2}) -> + math:atan2((Y2 - Y1), (X2 - X1)). + + %% Calc new point at a given distance and angle from another point +calc_point({X, Y}, Length, Radians) -> + X2 = round(X + Length * math:cos(Radians)), + Y2 = round(Y + Length * math:sin(Radians)), + {X2, Y2}. + +draw_label(Label, FromName, ToName, FromPos, ToPos, S, DC) -> + Color = + if + FromName =:= ?unknown, + ToName =:= ?unknown -> {2, 71, 254};% blue + FromName =:= ?unknown -> {255,126,0}; % orange + ToName =:= ?unknown -> {255,126,0}; % orange + FromPos =:= ToPos -> {2, 71, 254};% blue + true -> {227,38, 54} % red + end, + Scale = S#state.scale, + X = lists:min([FromPos, ToPos]) + (6 * Scale), + Y = S#state.y_pos, + write_text(Label, X, Y, Color, S#state.normal_font, S, DC), + S. + +draw_all_actors(S, DC) -> + Scale = S#state.scale, + Fun = fun(A, X) -> + case draw_actor(A, X, S, DC) of + true -> + X + (?incr_x * Scale); + false -> + X + end + end, + lists:foldl(Fun, ?initial_x * Scale, S#state.actors), + S. + +%% Returns: {NeedsRefreshBool, {ActorPos, NewsS, NewActors}} +ensure_actor(Name, S, DC) -> + do_ensure_actor(Name, S, S#state.actors, 0, DC). + +do_ensure_actor(Name, S, [H | _], N, _DC) when H#actor.name =:= Name -> + Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, + {false, {Name, Pos, S}}; +do_ensure_actor(Name, S, [H | T], N, DC) -> + if + S#state.hide_actors, H#actor.exclude -> + do_ensure_actor(Name, S, T, N, DC); + true -> + do_ensure_actor(Name, S, T, N + 1, DC) + end; +do_ensure_actor(Name, S, [], N, DC) -> + %% A brand new actor, let's see if it does fit + Pos = (?initial_x + (N * ?incr_x)) * S#state.scale, + MaxActors = S#state.max_actors, + if + is_integer(MaxActors), N > MaxActors -> + %% Failed on max_actors limit, put into unknown + %% Assume that unknown always is in actor list + ensure_actor(?unknown, S, DC); + Pos > (S#state.canvas_width - ((?initial_x - 15) * S#state.scale)) -> + %% New actor does not fit in canvas, refresh needed + A = create_actor(Name), + draw_actor(A, Pos, S, DC), + {true, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}}; + true -> + %% New actor fits in canvas. Draw the new actor. + A = create_actor(Name), + draw_actor(A, Pos, S, DC), + {false, {Name, Pos, S#state{actors = S#state.actors ++ [A]}}} + end. + +draw_actor(A, LineX, S, DC) -> + if + S#state.hide_actors, A#actor.exclude -> + false; + true -> + Scale = S#state.scale, + TextX = LineX - (5 * Scale), + {TextY, LineTopY, LineBotY} = calc_y(S), + Color = + case A#actor.name of + ?unknown -> {255,126,0};% orange + _ -> {227,38,54} % red + end, + {String, Font} = + if + S#state.context =:= display, A#actor.exclude -> + {"(" ++ A#actor.string ++ ")", S#state.normal_font}; + S#state.context =:= display, A#actor.include -> + {"[" ++ A#actor.string ++ "]", S#state.bold_font}; + true -> + {A#actor.string, S#state.normal_font} + end, + write_text(String, TextX, TextY, Color, Font, S, DC), + wxPen:setColour(S#state.pen, Color), + wxDC:setPen(DC, S#state.pen), + wxDC:drawLines(DC, [{LineX, LineTopY}, {LineX, LineBotY}]), + true + end. + +calc_y(#state{canvas_height = Height, scale = Scale}) -> + TextY = ?initial_y * Scale, + LineTopY = round(TextY + ((?incr_y / 2) * Scale)), + LineBotY = Height, + %% LineBotY = round(Height - ((?incr_y / 2) * Scale)), + {TextY, LineTopY, LineBotY}. + +display_all(S) -> + Actors = S#state.actors, + Actors2 = [A#actor{include = false, exclude = false} || A <- Actors], + S2 = S#state{actors = Actors2, + display_all = true, + hide_actions = false, + hide_actors = false}, + wxCheckBox:setValue(S2#state.hide_actions_box, S2#state.hide_actions), + wxCheckBox:setValue(S2#state.hide_actors_box, S2#state.hide_actors), + revert_main_window(S2). + +is_hidden(A, S) -> + case S#state.display_all of + true -> + A#actor.exclude; + false -> + A#actor.exclude orelse not A#actor.include + end. + +is_hidden(From, To, S) -> + Actors = S#state.actors, + DisplayAll = S#state.display_all, + FromMatch = lists:keysearch(From, #actor.name, Actors), + ToMatch = lists:keysearch(To, #actor.name, Actors), + case {FromMatch, ToMatch} of + {false, false} -> + not DisplayAll; + {false, {value, T}} -> + is_hidden(T, S); + {{value, F}, false} -> + is_hidden(F, S); + {{value, F}, {value, T}} when DisplayAll -> + is_hidden(F, S) orelse is_hidden(T, S); + {{value, F}, {value, T}} when F#actor.include; T#actor.include -> + F#actor.exclude orelse T#actor.exclude; + {{value, _F}, {value, _T}}-> + true + end. + +move_actor(From, To, Actors, S) -> + Pos = #actor.name, + ToName = To#actor.name, + FromName = From#actor.name, + ToIx = actor_index(ToName, Pos, Actors), + FromIx = actor_index(FromName, Pos, Actors), + if + FromIx =/= 0, ToIx =/= 0, ToIx > FromIx -> + Actors2 = lists:keydelete(FromName, Pos, Actors), + Actors3 = insert_actor_after(From, To, Actors2), + S2 = S#state{actors = Actors3}, + refresh_main_window(S2); + FromIx =/= 0, ToIx =/= 0 -> + Actors2 = lists:keydelete(FromName, Pos, Actors), + Actors3 = insert_actor_before(From, To, Actors2), + S2 = S#state{actors = Actors3}, + refresh_main_window(S2); + true -> + %% Ignore + S + end. + +insert_actor_after(From, To, [H | T]) -> + case To#actor.name =:= H#actor.name of + true -> [H, From | T]; + false -> [H | insert_actor_after(From, To, T)] + end; +insert_actor_after(_From, _To, []) -> + []. + +insert_actor_before(From, To, [H | T]) -> + case To#actor.name =:= H#actor.name of + true -> [From, H | T]; + false -> [H | insert_actor_before(From, To, T)] + end; +insert_actor_before(_From, _To, []) -> + []. + +actor_index(_Key, _Pos, []) -> + 0; +actor_index(Key, Pos, [H | T]) -> + case Key =:= element(Pos, H) of + false -> actor_index(Key, Pos, T) + 1; + true -> 1 + end. + +y_to_n(Y, S) -> + Y2 = ((Y / S#state.scale) - ?initial_y + (?incr_y / 2)), + N = round(Y2 / ?incr_y - 0.2), + MaxN = queue_length(S#state.events), + if + N =< 0 -> actor; + N > MaxN -> actor; + true -> {event, N} + end. + +x_to_n(X, S) -> + Scale = S#state.scale, + Len = length(S#state.actors), + X2 = X - (?initial_x * Scale), + N = X2 / (?incr_x * Scale), + N2 = trunc(N + 1.5), + if + N2 > Len -> Len; + N2 < 1 -> 1; + true -> N2 + end. + +write_text(Text, X, Y, Color, Font, S, DC) -> + wxDC:setFont(DC, Font), + wxDC:setTextForeground(DC, Color), + wxDC:drawText(DC, Text, {X, round(Y - (?incr_y * S#state.scale / 2))-3}). + +do_open_event(S, N) -> + Events = queue_to_list(S#state.events), + S2 = S#state{events = list_to_queue(Events)}, + case catch lists:nth(N, Events) of + {'EXIT', _} -> + {error, {no_such_event, N}}; + #e{key = Key} -> + Pid = S#state.collector_pid, + Fun = fun create_contents_window/2, + Prev = et_collector:iterate(Pid, Key, -1), + {S2, Res} = + if + Prev =:= Key -> + et_collector:iterate(Pid, first, 1, Fun, {S2, []}); + true -> + et_collector:iterate(Pid, Prev, 1, Fun, {S2, []}) + end, + case Res of + [] -> + {error, no_contents_viewer_started}; + [Single] -> + Single; + Multi -> + {error, {too_many, Multi}} + end + end. + +create_contents_window(Event, {S, Res}) -> + Options = [{viewer_pid, self()}, + {event, Event}, + {event_order, S#state.event_order}, + {active_filter, S#state.active_filter}, + {wx_debug, S#state.wx_debug} + | S#state.filters], + case catch et_wx_contents_viewer:start_link(Options) of + {ok, Pid} -> + {S, [{ok, Pid} | Res]}; + {error, Reason} -> + ok = error_logger:format("~p(~p): create_contents_window(~p) ->~n ~p~n", + [?MODULE, self(), Options, Reason]), + {S, [{error, Reason} | Res]}; + Stuff -> + {S, [{error, {stuff, Stuff}} | Res]} + end. + +print_setup(S) -> + S2 = #state{print_psdd = PSDD0, print_d = PD0} = init_printers(S), + + wxPageSetupDialogData:setPrintData(PSDD0, PD0), + PSD = wxPageSetupDialog:new(S#state.frame, [{data,PSDD0}]), + wxPageSetupDialog:showModal(PSD), + + PSDD1 = wxPageSetupDialog:getPageSetupData(PSD), + PD1 = wxPageSetupDialogData:getPrintData(PSDD1), + + %% Create new objects using copy constructor + PD = wxPrintData:new(PD1), + PsDD = wxPageSetupDialogData:new(PSDD1), + wxPageSetupDialog:destroy(PSD), + wxPageSetupDialogData:destroy(PSDD0), + wxPrintData:destroy(PD0), + S2#state{print_psdd=PsDD, print_d=PD}. + +print(#state{print_d = undefined, print_psdd = undefined} = S, Scope) -> + S2 = print_setup(S), + print(S2, Scope); +print(#state{print_psdd = PSDD, print_d = PD} = S, Scope) -> + PDD = wxPrintDialogData:new(PD), + wxPrintDialogData:enablePrintToFile(PDD, true), + wxPrintDialogData:enablePageNumbers(PDD, true), + wxPrintDialogData:enableSelection(PDD, true), + Tab = ets:new(?MODULE, [public]), + GetPageInfo = + fun(This) -> + {_, _, PW, PH} = wxPrintout:getPaperRectPixels(This), + PrinterS = S#state{context = printer, + canvas_width = PW, + canvas_height = PH}, + EventsPerPage = events_per_page(PrinterS, PH), + PagedEvents = paged_events(PrinterS, Scope, EventsPerPage), + [ets:insert(Tab, PE) || PE <- PagedEvents], + ets:insert(Tab, PrinterS), + NumPages = length(PagedEvents), + {1, NumPages, 1, NumPages} + end, + HasPage = + fun(_This, Page) -> + Size = ets:info(Tab, size), + NumPages = Size - 1, + (Page >= 1) andalso (Page =< NumPages) + end, + OnPrintPage = + fun(This, Page) -> + wxPrintout:mapScreenSizeToPageMargins(This, PSDD), + [PrinterS] = ets:lookup(Tab, state), + Events = ets:lookup_element(Tab, Page, 2), + DC = wxPrintout:getDC(This), + PrinterS2 = draw_all_actors(PrinterS, DC), + PrinterS3 = PrinterS2#state{y_pos = ?initial_y * PrinterS2#state.scale}, + lists:foldl(fun(E, State) -> display_event(E, State, DC) end, + PrinterS3, + Events), + true + end, + Printout1 = wxPrintout:new("Print", OnPrintPage, + [{getPageInfo, GetPageInfo}, {hasPage, HasPage}]), + Printout2 = wxPrintout:new("Print", OnPrintPage, + [{getPageInfo, GetPageInfo}, {hasPage, HasPage}]), + Preview = wxPrintPreview:new(Printout1, [{printoutForPrinting, Printout2}, {data,PDD}]), + case wxPrintPreview:isOk(Preview) of + true -> + PF = wxPreviewFrame:new(Preview, S#state.frame, []), + wxPreviewFrame:centre(PF, [{dir, ?wxBOTH}]), + wxPreviewFrame:initialize(PF), + wxPreviewFrame:centre(PF), + wxPreviewFrame:show(PF), + OnClose = fun(_Wx, EventRef) -> ets:delete(Tab), wxEvent:skip(EventRef) end, + wxPreviewFrame:connect(PF, close_window, [{callback, OnClose}]); + false -> + io:format("Could not create preview window.\n" + "Perhaps your current printer is not set correctly?~n", []), + wxPrintPreview:destroy(Preview), + ets:delete(Tab) + end, + S. + +paged_events(S, Scope, EventsPerPage) -> + {_, Events} = + case Scope of + print_one_page -> + revert(S#state{events_per_page = EventsPerPage}); + print_all_pages -> + collect_more_events(S, first, S#state.n_events) + end, + split_list(Events, EventsPerPage). + +split_list(List, N) when is_integer(N), N > 0 -> + do_split_list(List, N, 1, []). + +do_split_list([], _N, _Page, Acc) -> + lists:reverse(Acc); +do_split_list(List, N, Page, Acc) -> + {Items, Rest} = pick_n(List, N, []), + do_split_list(Rest, N, Page + 1, [{Page, Items} | Acc]). + +get_latest_resize(#wx{obj = ObjRef, event = #wxSize{}} = Wx) -> + receive + #wx{obj = ObjRef, event = #wxSize{}} = Wx2 -> + get_latest_resize(Wx2) + after 100 -> + Wx + end. + +get_latest_scroll(#wx{obj = ObjRef, event = #wxScroll{type = scroll_changed}} = Wx) -> + receive + #wx{obj = ObjRef, event = #wxScroll{type = scroll_changed}} = Wx2 -> + get_latest_scroll(Wx2) + after 100 -> + Wx + end. + +update_scroll_bar(#state{scroll_bar = ScrollBar, + status_bar = StatusBar, + events_per_page = EventsPerPage, + n_events = N} = S) -> + Opts = [{refresh, true}], + {_, LineTopY, LineBotY} = calc_y(S), + Range = LineBotY - LineTopY, + EventPos = + case event_pos(S) of + 1 -> 0; + P -> P + end, + if + N =/= 0, + EventsPerPage =/= 0 -> + PixelsPerEvent = Range / EventsPerPage, + Share = EventsPerPage / N, + wxScrollBar:setScrollbar(ScrollBar, + trunc(EventPos * Share * PixelsPerEvent), + round(Share * Range), + Range, + round(Share * Range), + Opts); + true -> + wxScrollBar:setScrollbar(ScrollBar, + 0, + Range, + Range, + Range, + Opts) + end, + wxStatusBar:setStatusText(StatusBar, where_text(S)), + S. + +events_per_page(S, PageHeight) -> + EventsPerPage = ((PageHeight - (?initial_y * S#state.scale)) div (?incr_y * S#state.scale)), + lists:max([1, EventsPerPage]). + +select_file(Frame, Message, DefaultFile, Style) -> + Dialog = wxFileDialog:new(Frame, + [{message, Message}, + {defaultDir, filename:dirname(DefaultFile)}, + {defaultFile, filename:basename(DefaultFile)}, + {style, Style}]), + Choice = + case wxMessageDialog:showModal(Dialog) of + ?wxID_CANCEL -> cancel; + ?wxID_OK -> {ok, wxFileDialog:getPath(Dialog)} + end, + wxFileDialog:destroy(Dialog), + Choice. + +%%%---------------------------------------------------------------------- +%%% String padding of actors +%%%---------------------------------------------------------------------- + +opt_create_actor(Name, Tag, S) -> + Actors = S#state.actors, + New = + case lists:keysearch(Name, #actor.name, Actors) of + {value, Old} -> Old; + false -> create_actor(Name) + end, + case Tag of + include -> New#actor{include = true}; + exclude -> New#actor{exclude = true} + end. + +create_actor(Name) -> + String = name_to_string(Name), + %% PaddedString = pad_string(String, 8), + #actor{name = Name, string = String, include = false, exclude = false}. + +name_to_string(Name) -> + case catch io_lib:format("~s", [Name]) of + {'EXIT', _} -> lists:flatten(io_lib:format("~w", [Name])); + GoodString -> lists:flatten(GoodString) + end. + +pad_string(Atom, MinLen) when is_atom(Atom) -> + pad_string(atom_to_list(Atom), MinLen); +pad_string(String, MinLen) when is_integer(MinLen), MinLen >= 0 -> + Len = length(String), + case Len >= MinLen of + true -> + String; + false -> + String ++ lists:duplicate(MinLen - Len, $ ) + end. + +%%%---------------------------------------------------------------------- +%%% Queue management +%%%---------------------------------------------------------------------- + +queue_new() -> + {0, [], []}. + +queue_in(X, {Size, In, Out}) -> + {Size + 1, [X | In], Out}. + +%% queue_out(Q) -> +%% case Q of +%% {Size, In, [H | Out]} -> {{value, H}, {Size - 1, In, Out}}; +%% {Size, [], []} -> {empty, {Size, [], []}}; +%% {Size, In, _} -> queue_out({Size, [], lists:reverse(In)}) +%% end. + +queue_to_list({_Size, [], Out}) -> + Out; +queue_to_list({_Size, In, Out}) -> + Out ++ lists:reverse(In). + +queue_length({Size, _In, _Out}) -> + Size. + +list_to_queue(List) when is_list(List) -> + {length(List), [], List}. diff --git a/lib/et/src/modules.mk b/lib/et/src/modules.mk index 8e9dd1a386..8d6c0902fb 100644 --- a/lib/et/src/modules.mk +++ b/lib/et/src/modules.mk @@ -1,27 +1,30 @@ #-*-makefile-*- ; force emacs to enter makefile-mode # %CopyrightBegin% -# -# Copyright Ericsson AB 2001-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 2001-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% MODULES = \ et \ et_collector \ - et_contents_viewer \ + et_gs_contents_viewer \ + et_gs_viewer \ et_selector \ - et_viewer + et_viewer \ + et_wx_contents_viewer \ + et_wx_viewer HRL_FILES = \ ../include/et.hrl diff --git a/lib/et/test/Makefile b/lib/et/test/Makefile new file mode 100644 index 0000000000..9aedf96ce9 --- /dev/null +++ b/lib/et/test/Makefile @@ -0,0 +1,81 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009-2010. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% + +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + +MODULES= \ + ett \ + et_wx_SUITE \ + et_test_lib + + +ERL_FILES= $(MODULES:%=%.erl) + +HRL_FILES= et_test_lib.hrl + +TARGET_FILES= \ + $(MODULES:%=$(EBIN)/%.$(EMULATOR)) + +INSTALL_PROGS= $(TARGET_FILES) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/et_test + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- +#ERL_COMPILE_FLAGS += + +EBIN = . + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- + +tests debug opt: $(TARGET_FILES) + +clean: + rm -f $(TARGET_FILES) + rm -f core + +docs: + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_spec: opt + +release_tests_spec: opt + $(INSTALL_DIR) $(RELSYSDIR) + $(INSTALL_DATA) et.spec $(ERL_FILES) $(HRL_FILES) $(RELSYSDIR) + $(INSTALL_PROGRAM) ett $(INSTALL_PROGS) $(RELSYSDIR) +# chmod -f -R u+w $(RELSYSDIR) +# @tar cf - *_SUITE_data | (cd $(RELSYSDIR); tar xf -) + +release_docs_spec: + + diff --git a/lib/et/test/README b/lib/et/test/README new file mode 100644 index 0000000000..4269186c93 --- /dev/null +++ b/lib/et/test/README @@ -0,0 +1,30 @@ + +Testing and running et tests. + +Testing gui api/applications can be hard, but we can at least +test that wxerlang behaves as we expected, i.e. that the api +is consistent and that it don't crash. + +The tests are structured as they are because we want you to +be able to run them in three different ways. + - direct via an erlang shell + - via common_test application + - via erlang/OTP inhouse ts tool. + +To run all the tests compile them and on unix +run ./ett to create an erlang terminal. + +Invoke ett:t(). in the erlang shell to run all regression tests. +If you want to specific tests invoke ett:t(Module) +or ett:t(Module, TestCase). + +To run all tests including the ones that require manual intervention run. +ett:t(all, [{user,true}]). + +To see every test_case window use +ett:t(all, [{user,step}]). +This requires that you manually close each window to step to the +next test_case. + +If you want to run specific test_cases use: +ett:t({Module,TestCase}, [{user,step}]). diff --git a/lib/et/test/et.spec b/lib/et/test/et.spec new file mode 100644 index 0000000000..69cd8d7582 --- /dev/null +++ b/lib/et/test/et.spec @@ -0,0 +1,2 @@ +{topcase, {dir, "../et_test"}}. + diff --git a/lib/et/test/et_test_lib.erl b/lib/et/test/et_test_lib.erl new file mode 100644 index 0000000000..b91b63786c --- /dev/null +++ b/lib/et/test/et_test_lib.erl @@ -0,0 +1,329 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% + +-module(et_test_lib). +-compile(export_all). + +-include("et_test_lib.hrl"). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +init_per_suite(Config) when is_list(Config)-> + incr_timetrap(Config, 5). + +end_per_suite(Config) when is_list(Config)-> + ok. + +incr_timetrap(Config, Times) -> + Key = tc_timeout, + KeyPos = 1, + NewTime = + case lists:keysearch(Key, KeyPos, Config) of + {value, {Key, OldTime}} -> + (timer:minutes(1) + OldTime) * Times; + false -> + timer:minutes(1) * Times + end, + lists:keystore(Key, KeyPos, Config, {Key, NewTime}). + +set_kill_timer(Config) -> + case init:get_argument(et_test_timeout) of + {ok, _} -> + Config; + _ -> + Time = + case lookup_config(tc_timeout, Config) of + [] -> + timer:minutes(5); + ConfigTime when is_integer(ConfigTime) -> + ConfigTime + end, + WatchDog = test_server:timetrap(Time), + [{kill_timer, WatchDog} | Config] + end. + +reset_kill_timer(Config) -> + DogKiller = + case get(et_test_server) of + true -> + fun(P) when is_pid(P) -> P ! stop; + (_) -> ok + end; + _ -> + fun(Ref) -> test_server:timetrap_cancel(Ref) end + end, + case lists:keysearch(kill_timer, 1, Config) of + {value, {kill_timer, WatchDog}} -> + DogKiller(WatchDog), + lists:keydelete(kill_timer, 1, Config); + _ -> + Config + end. + +lookup_config(Key,Config) -> + case lists:keysearch(Key, 1, Config) of + {value,{Key,Val}} -> + Val; + _ -> + [] + end. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +wx_init_per_suite(Config) -> + {_Pid, Ref} = + spawn_monitor(fun() -> + %% Avoid test case crash if wx master process dies + process_flag(trap_exit, true), + try + case os:type() of + {unix,darwin} -> + exit({skipped, "Can not test on MacOSX"}); + {unix, _} -> + io:format("DISPLAY ~s~n", [os:getenv("DISPLAY")]), + case proplists:get_value(xserver, Config, none) of + none -> ignore; + Server -> os:putenv("DISPLAY", Server) + end; + _ -> + ignore + end, + wx:new(), + wx:destroy() + catch + error:undef -> + exit({skipped, "No wx compiled for this platform"}); + _:Reason -> + exit({skipped, lists:flatten(io_lib:format("Start wx failed: ~p", [Reason]))}) + end, + exit(normal) + end), + receive + {'DOWN', Ref, _, _, normal} -> + init_per_suite(Config); + {'DOWN', Ref, _, _, {skipped, _} = Skipped} -> + Skipped; + {'DOWN', Ref, _, _, Reason} -> + exit({wx_init_per_suite, Reason}) + after timer:minutes(1) -> + exit({wx_init_per_suite, timeout}) + end. + +wx_end_per_suite(Config) -> + end_per_suite(Config). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +init_per_testcase(_Func, Config) when is_list(Config) -> + set_kill_timer(Config), + global:register_name(et_global_logger, group_leader()), + Config. + +end_per_testcase(_Func, Config) when is_list(Config) -> + global:unregister_name(et_global_logger), + reset_kill_timer(Config), + Config. + +%% Backwards compatible with test_server +tc_info(suite) -> []; +tc_info(doc) -> "". + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Use ?log(Format, Args) as wrapper +log(Format, Args, LongFile, Line) -> + File = filename:basename(LongFile), + Format2 = lists:concat([File, "(", Line, ")", ": ", Format]), + log(Format2, Args). + +log(Format, Args) -> + case global:whereis_name(et_global_logger) of + undefined -> + io:format(user, Format, Args); + Pid -> + io:format(Pid, Format, Args) + end. + +verbose(Format, Args, File, Line) -> + Arg = et_test_verbose, + case get(Arg) of + false -> + ok; + true -> + log(Format, Args, File, Line); + undefined -> + case init:get_argument(Arg) of + {ok, List} when is_list(List) -> + case lists:last(List) of + ["true"] -> + put(Arg, true), + log(Format, Args, File, Line); + _ -> + put(Arg, false), + ok + end; + _ -> + put(Arg, false), + ok + end + end. + +error(Format, Args, File, Line) -> + global:send(et_global_logger, {failed, File, Line}), + Fail = {filename:basename(File),Line,Args}, + case global:whereis_name(et_test_case_sup) of + undefined -> ignore; + Pid -> Pid ! Fail + %% global:send(et_test_case_sup, Fail), + end, + log("~n" ++ Format, Args, File, Line). + + +pick_msg() -> + receive + Message -> Message + after 4000 -> timeout + end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Utility functions + +user_available(Config) -> + false /= proplists:get_value(user, Config, false). + + +wx_destroy(Frame, Config) -> + case proplists:get_value(user, Config, false) of + false -> + timer:sleep(100), + ?m(ok, wxFrame:destroy(Frame)), + ?m(ok, wx:destroy()); + true -> + timer:sleep(500), + ?m(ok, wxFrame:destroy(Frame)), + ?m(ok, wx:destroy()); + step -> %% Wait for user to close window + ?m(ok, wxEvtHandler:connect(Frame, close_window, [{skip,true}])), + wait_for_close() + end. + +wait_for_close() -> + receive + #wx{event=#wxClose{}} -> + ?log("Got close~n",[]), + ?m(ok, wx:destroy()); + #wx{obj=Obj, event=Event} -> + try + Name = wxTopLevelWindow:getTitle(Obj), + ?log("~p Event: ~p~n", [Name, Event]) + catch _:_ -> + ?log("Event: ~p~n", [Event]) + end, + wait_for_close(); + Other -> + ?log("Unexpected: ~p~n", [Other]), + wait_for_close() + end. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% A small test server, which can be run standalone in a shell + +run_test(Test = {_,_},Config) -> + run_test([Test],Config); +run_test([{Module, TC} | Rest], Config) -> + log("\n\n=== Eval test suite: ~w ===~n", [Module]), + case catch Module:init_per_suite(Config) of + {skipped, Reason} -> + log("Test suite skipped: ~s~n", [Reason]), + [{skipped, Reason}]; + NewConfig when is_list(NewConfig) -> + Res = + if + TC =:= all -> + [do_run_test(Module, Test, NewConfig) || Test <- Module:all()]; + is_list(TC) -> + [do_run_test(Module, Test, NewConfig) || Test <- TC]; + true -> + [do_run_test(Module, TC, NewConfig)] + end, + Module:end_per_suite(NewConfig), + Res ++ run_test(Rest, NewConfig); + Error -> + ?error("Test suite skipped: ~w~n", [Error]), + [{skipped, Error}] + end; +run_test([], _Config) -> + []. + +do_run_test(Module, all, Config) -> + All = [{Module, Test} || Test <- Module:all()], + run_test(All, Config); +do_run_test(Module, TestCase, Config) -> + log("Eval test case: ~w~n", [{Module, TestCase}]), + Sec = timer:seconds(1) * 1000, + {T, Res} = + timer:tc(?MODULE, eval_test_case, [Module, TestCase, Config]), + log("Tested ~w in ~w sec~n", [TestCase, T div Sec]), + {T div Sec, Res}. + +eval_test_case(Mod, Fun, Config) -> + flush(), + global:register_name(et_test_case_sup, self()), + Flag = process_flag(trap_exit, true), + Pid = spawn_link(?MODULE, test_case_evaluator, [Mod, Fun, [Config]]), + R = wait_for_evaluator(Pid, Mod, Fun, Config), + global:unregister_name(et_test_case_sup), + process_flag(trap_exit, Flag), + R. + +test_case_evaluator(Mod, Fun, [Config]) -> + NewConfig = Mod:init_per_testcase(Fun, Config), + R = apply(Mod, Fun, [NewConfig]), + Mod:fin_per_testcase(Fun, NewConfig), + exit({test_case_ok, R}). + +wait_for_evaluator(Pid, Mod, Fun, Config) -> + receive + {'EXIT', Pid, {test_case_ok, _PidRes}} -> + Errors = flush(), + Res = + case Errors of + [] -> ok; + Errors -> failed + end, + {Res, {Mod, Fun}, Errors}; + {'EXIT', Pid, {skipped, Reason}} -> + log(" Test case ~w skipped, because ~p~n", + [{Mod, Fun}, Reason]), + Mod:fin_per_testcase(Fun, Config), + {skip, {Mod, Fun}, Reason}; + {'EXIT', Pid, Reason} -> + log(" Eval process ~w exited, because\n\t~p~n", + [{Mod, Fun}, Reason]), + Mod:fin_per_testcase(Fun, Config), + {crash, {Mod, Fun}, Reason} + end. + +flush() -> + receive Msg -> [Msg | flush()] + after 0 -> [] + end. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/lib/et/test/et_test_lib.hrl b/lib/et/test/et_test_lib.hrl new file mode 100644 index 0000000000..0d75318d99 --- /dev/null +++ b/lib/et/test/et_test_lib.hrl @@ -0,0 +1,90 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% + +-include_lib("wx/include/wx.hrl"). + +-define(log(Format,Args), et_test_lib:log(Format,Args,?FILE,?LINE)). +-define(warning(Format,Args), ?log("\n " ++ Format,Args)). +-define(error(Format,Args), et_test_lib:error(Format,Args,?FILE,?LINE)). +-define(verbose(Format,Args), et_test_lib:verbose(Format,Args,?FILE,?LINE)). + +-define(fatal(Format,Args), + ?error(Format, Args), + exit({test_case_fatal, Format, Args, ?FILE, ?LINE})). + +-define(skip(Format,Args), + ?warning(Format, Args), + exit({skipped, ?flat_format(Format, Args)})). + +-define(ignore(Expr), + fun() -> + AcTuAlReS = (catch (Expr)), + ?verbose("ok: ~p\n",[AcTuAlReS]) + end()). + +-define(msym(ExpectedRes, Expr), + fun() -> + AcTuAlReS = (catch (Expr)), + case AcTuAlReS of + ExpectedRes -> + ?verbose("ok: ~p\n",[AcTuAlReS]), + AcTuAlReS; + _ -> + et_test_lib:error("Not matching actual result was:\n ~p \nExpected ~s\n", + [AcTuAlReS, ??ExpectedRes], + ?FILE, ?LINE), + AcTuAlReS + end + end()). + +-define(m(ExpectedRes, Expr), + fun() -> + AcTuAlReS = (catch (Expr)), + case AcTuAlReS of + ExpectedRes -> + ?verbose("ok: ~p\n",[AcTuAlReS]), + AcTuAlReS; + _ -> + et_test_lib:error("Not matching actual result was:\n\t~p \nExpected:\n\t~p\n", + [AcTuAlReS, ExpectedRes], + ?FILE, ?LINE), + AcTuAlReS + end + end()). + +-define(m_receive(ExpectedMsg), + ?m(ExpectedMsg,et_test_lib:pick_msg())). + +-define(m_multi_receive(ExpectedMsgs), + fun() -> + TmPeXpCtEdMsGs = lists:sort(ExpectedMsgs), + AcTuAlReS = + lists:sort(lists:map(fun(_) -> + et_test_lib:pick_msg() + end, TmPeXpCtEdMsGs)), + case AcTuAlReS of + TmPeXpCtEdMsGs -> + ?verbose("ok: ~p\n",[AcTuAlReS]), + AcTuAlReS; + _ -> + et_test_lib:error("Not matching actual result was:\n ~p \nExpected ~p\n", + [AcTuAlReS, ExpectedMsgs], + ?FILE, ?LINE), + AcTuAlReS + end + end()). diff --git a/lib/et/test/et_wx_SUITE.erl b/lib/et/test/et_wx_SUITE.erl new file mode 100644 index 0000000000..1a16ca69a3 --- /dev/null +++ b/lib/et/test/et_wx_SUITE.erl @@ -0,0 +1,100 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% + +-module(et_wx_SUITE). + +-export([all/0, init_per_suite/1, end_per_suite/1, + init_per_testcase/2, fin_per_testcase/2, end_per_testcase/2]). + +-compile(export_all). + +-include("et_test_lib.hrl"). + +%% Initialization functions. +init_per_suite(Config) -> + et_test_lib:wx_init_per_suite(Config). + +end_per_suite(Config) -> + et_test_lib:wx_end_per_suite(Config). + +init_per_testcase(Func,Config) -> + et_test_lib:init_per_testcase(Func,Config). +end_per_testcase(Func,Config) -> + et_test_lib:end_per_testcase(Func,Config). +fin_per_testcase(Func,Config) -> %% For test_server + et_test_lib:end_per_testcase(Func,Config). + +%% SUITE specification +all() -> + all(suite). +all(suite) -> + [ + start_all_windows + ]. + +%% The test cases + +%% Display all windows and see if something crashes +start_all_windows(TestInfo) when is_atom(TestInfo) -> + et_test_lib:tc_info(TestInfo); +start_all_windows(_Config) -> + process_flag(trap_exit, true), + {ok, ViewerPid} = ?msym({ok, _}, et_viewer:start_link([])), + CollectorPid = et_viewer:get_collector_pid(ViewerPid), + ?msym({ok, _}, et_collector:report_event(CollectorPid, + 60, + some_from_actor, + some_to_actor, + some_label, + "Some details")), + timer:sleep(timer:seconds(1)), + + {ok, EventPid1} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)), + {ok, EventPid2} = ?msym({ok, _}, et_viewer:open_event(ViewerPid, 1)), + timer:sleep(timer:seconds(10)), + + ?msym(alive, process_state(ViewerPid)), + ?msym(alive, process_state(CollectorPid)), + ?msym(alive, process_state(EventPid1)), + ?msym(alive, process_state(EventPid2)), + + ?m(ok, et_wx_contents_viewer:stop(EventPid1)), + timer:sleep(timer:seconds(1)), + + ?msym(alive, process_state(ViewerPid)), + ?msym(alive, process_state(CollectorPid)), + ?msym(dead, process_state(EventPid1)), + ?msym(alive, process_state(EventPid2)), + + ?m(ok, et_viewer:stop(ViewerPid)), + timer:sleep(timer:seconds(1)), + + ?msym(dead, process_state(ViewerPid)), + ?msym(dead, process_state(CollectorPid)), + ?msym(dead, process_state(EventPid1)), + ?msym(dead, process_state(EventPid2)), + + ?m([], et_test_lib:flush()), + + ok. + +process_state(Pid) -> + case process_info(Pid, group_leader) of + {group_leader, _} -> alive; + undefined -> dead + end. diff --git a/lib/et/test/ett b/lib/et/test/ett new file mode 100755 index 0000000000..da2443df61 --- /dev/null +++ b/lib/et/test/ett @@ -0,0 +1,55 @@ +#! /bin/sh -f +# %CopyrightBegin% +# +# Copyright Ericsson AB 2009-2010. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% + +# Usage: ett [-cerl] + +emu=erl +while [ $# -gt 0 ]; do + case "$1" in + "-cerl") + shift + emu=cerl + ;; + *) + break + ;; + esac +done + +log=test_log_$$ +latest=test_log_latest +args=${1+"$@"} + +erlcmd="$emu -sname test_server -smp -pa ../../et/ebin $p $args -et_test_verbose true -et_test_timeout" + +echo "Give the following command in order to see the outcome:" +echo "" +echo " less $log" + +rm "$latest" 2>/dev/null +ln -s "$log" "$latest" +touch "$log" + +ostype=`uname -s` +if [ "$ostype" = "SunOS" ] ; then + /usr/openwin/bin/xterm -T "Testing et" -l -lf "$log" -e $erlcmd & +else + xterm -T "Testing et" -e script -f -c "$erlcmd" "$log" & +fi + +tail -f "$log" | egrep 'Eval||NYI' diff --git a/lib/et/test/ett.erl b/lib/et/test/ett.erl new file mode 100644 index 0000000000..1896e65842 --- /dev/null +++ b/lib/et/test/ett.erl @@ -0,0 +1,154 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2009-2010. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% + +-module(ett). +-compile(export_all). + +%% Modules or suites can be shortcuts, for example wx expands to et_wx_SUITE. +%% +%% t(Tests) run et testcases. +%% Tests can be module, {module, test_case} or [module|{module,test_case}] + +t() -> + t(read_test_case()). +t(Test) -> + t(Test, []). + +t(Mod, TC) when is_atom(Mod), is_atom(TC) -> + t({Mod,TC}, []); +t(all, Config) when is_list(Config) -> + Fs = filelib:wildcard("et_*_SUITE.erl"), + t([list_to_atom(filename:rootname(File)) || File <- Fs], Config); +t(Test,Config) when is_list(Config) -> + Tests = resolve(Test), + write_test_case(Test), + Res = et_test_lib:run_test(Tests, Config), + append_test_case_info(Test, Res). + +user() -> + user(read_test_case()). +user(Mod) -> + t(Mod, [{user,step}]). +user(Mod,Tc) when is_atom(Tc) -> + t({Mod,Tc}, [{user,step}]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Resolves the name of test suites and test cases +%% according to the alias definitions. Single atoms +%% are assumed to be the name of a test suite. + +resolve(Suite0) when is_atom(Suite0) -> + case alias(Suite0) of + Suite when is_atom(Suite) -> + {Suite, all}; + {Suite, Case} -> + {Suite, Case} + end; +resolve({Suite0, Case}) when is_atom(Suite0), is_atom(Case) -> + case alias(Suite0) of + Suite when is_atom(Suite) -> + {Suite, Case}; + {Suite, Case2} -> + {Suite, Case2} + end; +resolve(List) when is_list(List) -> + [resolve(Case) || Case <- List]. + +alias(Suite) when is_atom(Suite) -> + Str = atom_to_list(Suite), + case {Str, lists:reverse(Str)} of + {"et" ++ _, "ETIUS" ++ _} -> + Suite; + _ -> + list_to_atom("et_" ++ Str ++ "_SUITE") + end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +config_fname() -> + "et_test_case_config". + +%% Read default config file +read_config() -> + Fname = config_fname(), + et_test_lib:log("Consulting file ~s...~n", [Fname]), + case file:consult(Fname) of + {ok, Config} -> + et_test_lib:log("Read config ~w~n", [Config]), + Config; + _Error -> + Config = et_test_lib:default_config(), + et_test_lib:log("<>WARNING<> Using default config: ~w~n", [Config]), + Config + end. + +%% Write new default config file +write_config(Config) when is_list(Config) -> + Fname = config_fname(), + {ok, Fd} = file:open(Fname, write), + write_list(Fd, Config), + file:close(Fd). + +write_list(Fd, [H | T]) -> + ok = io:format(Fd, "~p.~n",[H]), + write_list(Fd, T); +write_list(_, []) -> + ok. + +test_case_fname() -> + "et_test_case_info". + +%% Read name of test case +read_test_case() -> + Fname = test_case_fname(), + case file:open(Fname, [read]) of + {ok, Fd} -> + Res = io:read(Fd, []), + file:close(Fd), + case Res of + {ok, TestCase} -> + et_test_lib:log("Using test case ~w from file ~s~n", + [TestCase, Fname]), + TestCase; + {error, _} -> + default_test_case(Fname) + end; + {error, _} -> + default_test_case(Fname) + end. + +default_test_case(Fname) -> + TestCase = all, + et_test_lib:log("<>WARNING<> Cannot read file ~s, " + "using default test case: ~w~n", + [Fname, TestCase]), + TestCase. + +write_test_case(TestCase) -> + Fname = test_case_fname(), + {ok, Fd} = file:open(Fname, write), + ok = io:format(Fd, "~p.~n",[TestCase]), + file:close(Fd). + +append_test_case_info(TestCase, TestCaseInfo) -> + Fname = test_case_fname(), + {ok, Fd} = file:open(Fname, [read, write]), + ok = io:format(Fd, "~p.~n",[TestCase]), + ok = io:format(Fd, "~p.~n",[TestCaseInfo]), + file:close(Fd), + TestCaseInfo. diff --git a/lib/et/vsn.mk b/lib/et/vsn.mk index c6d58e2055..b7d65b12a2 100644 --- a/lib/et/vsn.mk +++ b/lib/et/vsn.mk @@ -1,23 +1,24 @@ # This is an -*-makefile-*- file. # %CopyrightBegin% -# -# Copyright Ericsson AB 2002-2009. All Rights Reserved. -# +# +# Copyright Ericsson AB 2002-2010. All Rights Reserved. +# # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. -# +# # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. -# +# # %CopyrightEnd% -ET_VSN = 1.3.3 +ET_VSN = 1.4 +TICKETS = OTP-8058 -TICKETS = OTP-8201 +TICKETS_1_3_3 = OTP-8201 TICKETS_1_3_2 = OTP-8078 TICKETS_1_3_1 = OTP-7830 -- cgit v1.2.3